MySQL сумма с оператором if - PullRequest
1 голос
/ 03 ноября 2011

У меня следующий запрос:

SELECT BaDebet2 - BaCredit2 AS TOTAL FROM balansen

edit

Я хочу суммировать все записи BaDebet2, только когда TOTAL больше 0

Ответы [ 3 ]

0 голосов
/ 03 ноября 2011

Попробуйте это:

SELECT 
    CASE WHEN SUM(BaDebet2 - BaCredit2)>0 
         THEN SUM(BaDebet2 - BaCredit2) + BaDebet2 
    ELSE SUM(BaDebet2 - BaCredit2) END AS TOTAL
FROM balansen
0 голосов
/ 03 ноября 2011

Я думаю, что это решит вашу проблему. Второй запрос доставит BaDebet2, если BaDebet2 - BaCredit2> 0, иначе 0.

SELECT SUM(BaDebet2_Actual) FROM 
(SELECT IF(BaDebet2 - BaCredit2>0, BaDebet2 ,0) AS BaDebet2_Actual 
 FROM balansen) A;
0 голосов
/ 03 ноября 2011

Это то, что вы хотите, верно?

SELECT SUM(BaDebet2 - BaCredit2) AS TOTAL, IF(SUM(BaDebet2 - BaCredit2) > 0, SUM(BaDebet2 - BaCredit2) + BaDebet2, NULL) FROM balansen

, если TOTAL> 0, у вас есть BaDebet2 + TOTAL во втором столбце, в противном случае вы получите NULL.

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