Forum: PC-Programmierung Firebird SQL: SUM von NULL Feldern


von Stefan (Gast)


Lesenswert?

Hallo,

ich möchte die Summe über ein paar Datensätze mit der Aggregatsfunktion 
SUM berechnen. Das Problem ist dass im betreffenden Feld der NULL-Wert 
vorkommen kann. Eigentlich ging ich immer davon aus dass NULL in SQL als 
"unbekannt" zu verstehen ist, weshalb die Summe eigentlich ebenfalls 
NULL liefern sollte, sobald mind. ein NULL in der Menge vorkommt, es 
wird aber in der SUM Funktion als 0 behandelt. Hat jemand eine Idee wie 
in diesem Fall ein "richtiges" NULL zurückbekomme?

Gruß
Stefan

von Peter (Gast)


Lesenswert?

sum summiert alle Werte die nicht null sind.

in T-SQL könnte man soetwas machen.

select
   case when count(a) = count(*) then sum(a) else null end as 
summe_von_a
from
   #tabelle

von Sven P. (Gast)


Lesenswert?

Stefan schrieb:
> Eigentlich ging ich immer davon aus dass NULL in SQL als
> "unbekannt" zu verstehen ist, weshalb die Summe eigentlich ebenfalls
> NULL liefern sollte, sobald mind. ein NULL in der Menge vorkommt, es
> wird aber in der SUM Funktion als 0 behandelt.

Ist doch auch richtig -- die NULL-Werte werden einfach ignoriert und 
verändern die Summe nicht. Eine Summe ohne Werte ist dann halt eben 0.

Festzustellen, ob da überhaupt irgendwelche NULL-Werte vorkommen ist 
wieder etwas Andres, da wäre z.B. sowas wie 'IS NULL' angebracht.

von Frank (Gast)


Lesenswert?

select sum(wert) where (not wert is null) and (was auch immer ...

von Frank (Gast)


Lesenswert?

select sum(wert) from table_xyz where (not wert is null) and (was auch 
immer ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.