2011
12-19

mysql błąd sumy

W Blog | : ,
Dzisiaj walczyłęm z dziwnym błędem w MySQL.
  1.  
  2. SELECT
  3. -- ...
  4. (
  5. (SELECT SUM(t.v)
  6. FROM tab1 t
  7. )
  8. +
  9. (SELECT SUM(t.v)
  10. FROM tab2 t
  11. )
  12. ) AS x
  13. -- ...
  14.  
Coś takiego zwracało mi NULL w każdej kolumnie x w każdym wierszu mimo iż w tab1 było mnustwo niezerowych rekordów. A oto powód: Jeśli żaden rekrod nie spełnia kryterjów zapytania SUM zwraca NULL, a nie 0. I kolejna rzecz NULL + 1 = NULL. Więc by rozwiązać mój problem zrobiłem tak:
  1.  
  2. SELECT
  3. -- ...
  4. (
  5. IFNULL((
  6. SELECT SUM(t.v)
  7. FROM tab1 t
  8. ),0)
  9. +
  10. IFNULL((
  11. SELECT SUM(t.v)
  12. FROM tab2 t
  13. ),0)
  14. ) AS x
  15. -- ...
  16.  
Teraz wszystko działa. Mam nadzieję że to wam pomogło.
Jeszcze brak komentarzy.

Zostaw odpowiedź

  ( Ctrl+Enter )