Конференция "Базы" » MySQL запрос [D7, MySQL]
 
  • mefodiy (26.03.10 15:56) [0]
    Есть такого запрос, который упрощенно выглядит так:

    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, хотя слогаемые не равны нулю.
    Что делаю неправильно и как сделать?
  • evvcom © (26.03.10 17:59) [1]
    не знаю функцию в MySQL, а в Оракле она такая:
    nvl(b.Amount1, 0) + nvl(c.Amount2, 0)

    В MSSQL, если правильно помню:
    ISNULL(b.Amount1, 0) + ISNULL(c.Amount2, 0)

    Ищи аналогичную в MySQL
  • mefodiy (26.03.10 20:53) [2]
    Спасибо за подсказку.
    Сделал так

    IF(b.Amount1 IS NULL,0,b.Amount1) + IF(c.Amount2 IS NULL,0,c.Amount2)

    и сработало.
 
Конференция "Базы" » MySQL запрос [D7, MySQL]
Есть новые Нет новых   [134433   +22][b:0][p:0]