HINWEIS
BEISPIEL
ORDER BY
Nachname, Vorname
Abbildung 8.38 Abfrageergebnis
Entscheidend für die Ausführungsgeschwindigkeit ist die Indizierung der entsprechenden Felder.
Datensätze gruppieren
Im Zusammenhang mit Berechnungsfunktionen oder mit Listenausgaben tritt häufig das Problem auf, be-
stimmte Gruppen innerhalb einer Tabelle zu bilden.
Um die Anzahl der Artikel, die von den einzelnen Lieferanten stammen, zu ermitteln, könnten Sie zunächst
folgende Möglichkeit nutzen:
SELECT 1, COUNT(*) FROM Artikel WHERE LieferantenNr = 1
UNION
SELECT 2, COUNT(*) FROM Artikel WHERE LieferantenNr = 2
UNION
SELECT 3, COUNT(*) FROM Artikel WHERE LieferantenNr = 3
...
Abbildung 8.39 Abfrageergebnis
Mit jeder Anweisung erhalten Sie die Anzahl der Artikel des jeweiligen Lieferanten. Allerdings müssen Sie
wissen, welche Lieferanten überhaupt vorhanden sind und wie deren LieferantenNr lautet. Dass dieses Vor-
gehen recht umständlich und aufwändig ist, dürfte offensichtlich sein. Das gleiche Problem lässt sich mit
der GROUP BY-Anweisung deutlich eleganter lösen.
447
Daten abfragen
BEISPIEL
BEISPIEL
Kapitel 8: SQL in Theorie und Praxis
Eine verbesserte Lösung des Vorgängerbeispiels.
SELECT
LieferantenNr,
COUNT(*) AS [Anzahl Artikel]
FROM
Artikel
GROUP BY
LieferantenNr
Abbildung 8.40 Abfrageergebnis
Die Bearbeitung des obigen Befehls können Sie sich wie folgt vorstellen:
Auswahl aller Artikel ( ... FROM Artikel ...)
Gruppieren der Datensätze nach Lieferantennummer ( ... GROUP BY LieferantenNr)
Zählen der Datensätze innerhalb der gebildeten Gruppen (COUNT(*))
Die HAVING-Klausel
Mit der zusätzlichen Klausel HAVING können Sie innerhalb der Gruppe Selektionen vornehmen. Die
WHERE-Klausel wirkt sich hingegen auf die gesamte Tabelle bzw. Abfrage aus.
Es sollen alle Lieferanten angezeigt werden, die mehr als drei Artikel liefern.
SELECT
Lieferanten.Firma,
COUNT(*) As [Anzahl Artikel]
FROM
Artikel,
Lieferanten
WHERE
Artikel.LieferantenNr = Lieferanten.LieferantenNr
GROUP BY
Lieferanten.Firma
HAVING
Count(*) > 3
448

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.