[Db] SUM che torna null e non 0

Marcello Vezzelli marcello a vezz.it
Mar 8 Maggio 2007 17:32:47 CEST


Cristiano Verondini ha scritto:
>
>>> SELECT (
>>> (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=1
>>> GROUP BY tipo) +
>>> (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=2
>>> GROUP BY tipo)
>>> )
>>>
>>> mi torna null, e non la somma dei record di tipo 1!!!
>
>    Oddio, un modo molto macchinoso per ottenere una somma di valori 
> che secondo me andrebbe fatta a livello applicativo!

Dai non è poi macchinoso...

La cosa bella è che se faccio

SELECT IF(tipo=1,SUM(importo),0) + IF(tipo=2,SUM(importo),0) FROM mov 
WHERE (tipo=1 OR tipo=2) AND data ="2007-01-01"

sembra che venga giusto, ci sto ancora guardando bene.
>
>    BTW, NULL è un valore particolare in un DB, per cui la somma fra 
> qualsiasi valore numerico e NULL ha sempre come risultato NULL.

In questo modo impongo 0 e schivo NULL.

Ciao
Marcello



Maggiori informazioni sulla lista Db