Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#3

AW: select sum mit feldausgabe

  Alt 27. Jul 2016, 16:20
Pssst, der Parameter von SUM hießt in vielen Dokumentationen der meisten DBMS nicht umsonst Value oder Expression und nicht Field.
http://stackoverflow.com/questions/1...ions-with-case
http://docwiki.embarcadero.com/InterBase/XE7/en/SUM(_) ... schau mal was bei <val> (Value) geschrieben steht.

Man kann bei diesen Aggregate-Funktionen auch sagen was gemacht werden soll.
Selbst ORDER BY, DISTINCT und Co. kann da verwendet werden, eventuell auch ein WHERE, je nach DBMS.
SQL-Code:
sum(iif(Zahlung < 0, Zahlung, 0))
sum(iif(Zahlung < 0, Zahlung, NULL))
Die meisten Aggregate-Funktionen werten nur aus, wenn ein Wert ungleich 0 vorkommt,
z.B. count(*) zählt alle Zeilen und count(abc) zählz nur Datensätze, wo abc NOT NULL ist.

SQL-Code:
Select sum(IfThenDeinesDBMS(Zahlung > 0, Zahlung, 0)) as Einzahlungen,
       sum(IfThenDeinesDBMS(Zahlung < 0, Zahlung, 0)) as Ausgabe

-- oder halt

Select sum(IfThenDeinesDBMS(KontoArt = 'E', Zahlung, 0)) as Einzahlungen,
       sum(IfThenDeinesDBMS(KontoArt = 'A', Zahlung, 0)) as Ausgabe
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (27. Jul 2016 um 17:41 Uhr)
  Mit Zitat antworten Zitat