Добавить несколько столбцов в запросе выбора - PullRequest
1 голос
/ 06 мая 2010

Сценарий похож на:

SomeTable {A int, B int, C int}

Мне нужно выбрать и добавить с формулой: A + 25% B + 50% C. Если указано десятичное число, округлите до следующей полной цифры и отобразите звездочку и пробелы, указывающие сумму. Каждый столбец необходимо округлить перед добавлением.

Предположим, данные

10 16 12
14 15 19

Выбор должен вернуть: 20, 28 *.

Я думаю об использовании инструкций case, но это становится очень грязным из-за этого.
Есть идеи?

1 Ответ

1 голос
/ 06 мая 2010

СЛУЧАЙ - ваш единственный путь:

DECLARE @YourTable table (A int, B int, C int)
SET NOCOUNT ON
INSERT @YourTable VALUES (10, 16, 12 )
INSERT @YourTable VALUES (14, 15, 19 )
SET NOCOUNT OFF

SELECT 
    CASE
        WHEN ROUND(A+.25*B+C*.5,0)<A+.25*B+C*.5 THEN
            CONVERT(varchar(10),CONVERT(int,ROUND(A+.25*B+C*.5,0))+1)+' *' 
        ELSE CONVERT(varchar(10),CONVERT(int,ROUND(A+.25*B+C*.5,0))) 
    END
    FROM @YourTable

ВЫВОД:

------------
20
28 *

(2 row(s) affected)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...