In der HAVING-Klausel geben Sie Suchbedingungen an, um Gruppen auszuwählen. Die Ergebnistabelle enthält den Satz für eine Gruppe, wenn die Gruppe die angegebene Suchbedingung erfüllt. Ist keine GROUP BY-Klausel angegeben, gelten alle Sätze als eine Gruppe.
SELECT ...
HAVING
suchbedingung
suchbedingung
Suchbedingung, die eine Gruppe erfüllen muss.
Im Unterschied zur WHERE-Suchbedingung, die für jeden Satz einer Tabelle ausgewertet wird, wird die HAVING-Suchbedingung einmal pro Gruppe ausgewertet.
Für einen Spaltennamen in suchbedingung muss eine der folgenden Bedingungen gelten:
Der Spaltenname ist in der GROUP BY-Klausel aufgeführt.
Der Spaltenname ist Argument einer Mengenfunktion (AVG(), SUM(), ...). Wenn der Spaltenname auch in der SELECT-Liste erscheint, darf er dort auch nur als Argument einer Mengenfunktion vorkommen.
Der Spaltenname kommt in einer Unterabfrage vor. Wenn der Spaltenname sich auf die Tabellen in der FROM-Klausel bezieht, muss er in der GROUP BY-Klausel aufgeführt oder Argument einer Mengenfunktion sein.
Der Spaltenname ist Teil einer Tabelle aus einem übergeordneten SELECT-Ausdruck..
Beispiel
Für jeden Auftrag soll die zuletzt erbrachte Leistung angezeigt werden, sofern sie nach dem angegebenen Datum erfolgt ist:
SELECT anr, MAX(ldatum) FROM leistung GROUP BY anr
HAVING MAX(ldatum) > DATE'<date>'