Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
maleficium
- Сообщения: 1
- Зарегистрирован: 28 май 2008, 18:07
Сообщение
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
Сообщение
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 ...
Только версию сервера посмотри, чтобы такие конструкции поддерживались, как уже было сказано.