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

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
maleficium
Сообщения: 1
Зарегистрирован: 28 май 2008, 18:07

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

Сообщение maleficium » 28 май 2008, 18:19

Как разделить данные в колонке "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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 28 май 2008, 19:05

Зависит от версии сервера.
В firebird 1.5 и выше читай про CASE.

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

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

Сообщение Kotъ-Begemotъ » 29 май 2008, 13:42

Ну вот почти так и разделить :)))

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

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 ...
Только версию сервера посмотри, чтобы такие конструкции поддерживались, как уже было сказано.

Ответить