-
Есть такого запрос, который упрощенно выглядит так:
SELECT a.Exp_code,b.Amount1,c.Amount2,b.Amount1 + c.Amount2 FROM Table1 a LEFT JOIN (SELECT Exp_code,SUM(Field1) AS Amount1 FROM Table2 GROUP BY Exp_code) b USING(Exp_code) LEFT JOIN (SELECT Exp_code,SUM(Field2) AS Amount2 FROM Table3 GROUP BY Exp_code) c USING(Exp_code) ORDER BY Exp_code
В нем все нормально срабатывает кроме суммы b.Amount1 + c.Amount2. Во всех строках выводится Null, хотя слогаемые не равны нулю. Что делаю неправильно и как сделать?
-
не знаю функцию в MySQL, а в Оракле она такая: nvl(b.Amount1, 0) + nvl(c.Amount2, 0)
В MSSQL, если правильно помню: ISNULL(b.Amount1, 0) + ISNULL(c.Amount2, 0)
Ищи аналогичную в MySQL
-
Спасибо за подсказку. Сделал так
IF(b.Amount1 IS NULL,0,b.Amount1) + IF(c.Amount2 IS NULL,0,c.Amount2)
и сработало.
|