Entwickler-Ecke

Datenbanken - Summe vieler Datensätze per SQL auslesen


Killi - Di 20.09.05 20:02
Titel: Summe vieler Datensätze per SQL auslesen
Hi,

mal wieder ein Problem: ich habe viele Lieferscheine, in denen ein Gesamtbetrag und eine KundenID steht.
Nun will ich in einem TDBGrid die GESAMTsumme aller Lieferscheine eines jedes einzelnen Kunden darstellen.

Geht das per SQL-Befehle?

So Ähnlich wie


SQL-Anweisung
1:
Select Sum(liefer.gesamt), liefer.ID, liefer.Datum, kunden.Name from liefer, kunden where (liefer.abgerechnet = falseand (liefer.kid = kunden.kid)                    


Moderiert von user profile iconKlabautermann: Code- durch SQL-Tags ersetzt


jasocul - Di 20.09.05 20:12

Das geht mit den sogenannten Aggregat-Funktionen in SQL.
Beispiel:

SQL-Anweisung
1:
2:
3:
4:
Select Sum(liefer.gesamt), kunden.Name 
from liefer, kunden 
where (liefer.abgerechnet = falseand (liefer.kid = kunden.kid)
group by kunden.Name

Du kannst dann natürlich nicht mehr Details wie Lieferdatum darstellen, da es da ja mehrere verschiedene geben könnte, wenn man Summen bildet.


Killi - Di 20.09.05 20:20

Danke für die schnelle Antwort!

Das ist das nächste....ich würde gerne das KLEINSTE Datum anzeigen (so in der Art "nicht abgerechnet seit") - das geht mit MIN, richtig?

Noch eine kurze Frage zu diesem SQL-Code: ich habe ja VIELE Lieferscheine - zeigt er mir dannwirklich nur EINEN pro Kunde mit der Summe aller an?




Vielen vielen Dank!!!


jasocul - Di 20.09.05 20:25

Vermutlich meinst du Max, da du wohl das jüngste Datum (als der größte Datumswert) haben möchtest.
Und ja, es sollte die Summe aller Lieferscheine zu einem Kunden angezeigt werden.