www.mikrocontroller.net

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


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
select sum(wert) where (not wert is null) and (was auch immer ...

Autor: Frank (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.