Version: Test
©Raddy 2001

SQL mit Oracle VII                                  zurück

Mehrere
Gruppierungs-
kriterien
a-absatz.pcx (280 Byte)

Tabelle "Rechnung"

RNr.

Kundenname Betrag Status
1 Müller 10 bezahlt
2 Müller 20 bezahlt
3 Müller 40 offen
4 Müller 80 offen
5 Hoffmann 1000 bezahlt
6 Hoffmann 2000 bezahlt
7 Hoffmann 4000 bezahlt
8 Hoffmann 8000 offen
9 Bauer 1 bezahlt
10 Bauer 2 bezahlt
Gegeben ist wieder eine Tabelle Rechnung, jedoch mit anderen Werten. 
a-absatz.pcx (280 Byte)

Mehrere Gruppierungskriterien

Nun möchten wir zu jeden Kunden wissen, wie hoch die Summe der
bezahlten bzw. offenen Rechnungen ist:
 
   select kundenname, status, sum(betrag), count(kundenname)
   from rechnung
   group by status, kundenname

Zuerst überlegen wir, welche Spalten ausgegeben werden:
	Der Kunde Hoffmann hat bezahlte und offene Rechnungen,
	also haben wir hier 2 Zeilen. Genauso beim Kunden Hoffmann,
	auch er erzeugt 2 Zeilen. Der Kunde Bauer hat dagegen nur 
 	bezahlte Rechnungen, er erzeugt also nur 1Spalte.   
kundenname status sum count
Hoffmann bezahlt 7000 3
Hoffmann offen 8000 1
Müller bezahlt 30 2
Müller offen 120 2
Bauer bezahlt 3 2
Nun zeigen wir, wie die Spalte sum der Ergebnistabelle zustandekommt:

	Der select Befehl berechnet die Summe aus der Spalte Betrag,
	und zwar für jede Kombination von Gruppierungskriterien einzeln.

Was bedeuted das für unser Beispiel:

	Der Select Befehl berechnet zuerst die Summe aus der Spalte
	Betrag für die Gruppenkriterien-Kombination Hoffmann/bezahlt, 
	dann für die Kombination Hoffmann/offen dann für die
	Kombination Müller/bezahlt usw.

Beim Befehl count arbeitet genauso.