Страница 1 из 1

запрос с условием в SUM

Добавлено: 28 май 2008, 18:19
maleficium
Как разделить данные в колонке "points" на отрицательные и положительные и вывести их суммы?
что-то наподобие этого

Код: Выделить всё

SELECT  
m.fio,
SUM(if(m.points>0,m.points,0)) AS FIELD_1,  
SUM(if(m.points<0,m.points,0)) AS FIELD_2
FROM montag m GROUP BY m.FIO

Добавлено: 28 май 2008, 19:05
WildSery
Зависит от версии сервера.
В firebird 1.5 и выше читай про CASE.

Re: запрос с условием в SUM

Добавлено: 29 май 2008, 13:42
Kotъ-Begemotъ
Ну вот почти так и разделить :)))

Код: Выделить всё

SELECT 
 SUM(CASE WHEN M.POINTS<0 THEN M.POINTS ELSE 0 END) SUM_NEGATIVE,
 SUM(CASE WHEN M.POINTS>0 THEN M.POINTS ELSE 0 END) SUM_POSITIVE
FROM MONTAG M ...
Только версию сервера посмотри, чтобы такие конструкции поддерживались, как уже было сказано.