-
yurikon (12.07.11 13:55) [0]Добрый день!
Имеется запрос:
SELECT F1, sum(f3), 'F2' =
CASE When sum(f3) > 0 then A
When sum(f3) < 0 then B END
FROM table1
и sum(f3) может несколько раз встречаться в запросе. Собственно, возник вопрос - сервер будет несколько раз вычислять эту сумму или сообразит, что она уже посчитана?
Возможно, есть более грамотный вариант этого запроса?
С уважением, Юрий. -
Медвежонок Пятачок © (12.07.11 14:13) [1]select from select
-
b z (12.07.11 14:23) [2]with ( select ) select
ps: MSSQL >= 2005 -
Труп Васи Доброго © (21.09.11 11:41) [3]не знаю тонкостей MSSQL, но может такое прокатит
SELECT F1, sum(f3) As summ, 'F2' =
CASE When summ > 0 then A
When summ < 0 then B END
FROM table1 -
Труп Васи Доброго © (21.09.11 11:41) [3]
В MSSQL такое не прокатит.
yurikon (12.07.11 13:55)
Должен понять.
1. 'F2' = зачем кавычки?
Проверь скорость и посмотри план.
свое го варианта
и этогоSelect F1,SUMM,CASE When sum(SUMM) > 0 then A When sum(SUMM) < 0 then B END
FROM
(
SELECT F1, sum(f3) as SUMM,
FROM table1
) AS Q