Share via


HAVING-Klausel (Microsoft Access SQL)

Gilt für: Access 2013 | Access 2016

Gibt an, welche gruppierten Datensätze in einer SELECT-Anweisung angezeigt werden, wenn diese eine GROUP BY-Klausel enthält. Nachdem die Datensätze über die GROUP BY-Klausel zusammengestellt wurden, zeigt die HAVING-Klausel alle Datensätze an, die über die GROUP BY-Klausel gruppiert wurden und die Bedingungen der HAVING-Klausel erfüllen.

Syntax

SELECT fieldlist FROM table WHERE selectcriteria GROUP BY groupfieldlist [HAVING groupcriteria ]

Eine SELECT-Anweisung mit einer HAVING-Klausel besteht aus folgenden Komponenten:

Teil Beschreibung
fieldlist Der Name der abzurufenden Felder zusammen mit eventuellen Feldnamenaliasen, SQL-Aggregatfunktionen, Auswahlprädikaten (ALL, DISTINCT, DISTINCTROW oder TOP) oder anderen Optionen für die SELECT-Anweisung.
table Der Name der Tabelle, aus der die Datensätze abgerufen werden. Weitere Informationen finden Sie unter FROM-Klausel.
selectcriteria Die Auswahlkriterien. Wenn die Anweisung eine WHERE-Klausel einschließt, gruppiert das Microsoft Access-Datenbankmodul Werte, nachdem die WHERE-Bedingungen auf die Datensätze angewendet wurden.
groupfieldlist Die Namen von bis zu 10 Feldern, die zum Gruppieren von Datensätzen verwendet werden. Die Reihenfolge der Feldnamen in dem Argument Gruppenfeldliste bestimmt die Gruppierungsebenen von der höchsten bis zur niedrigsten Ebene der Gruppierung.
groupcriteria Ein Ausdruck, der bestimmt, welche gruppierten Datensätze angezeigt werden.

HinwBemerkungeneise

Die HAVING-Klausel ist optional.

Die HAVING-Klausel entspricht der WHERE-Klausel, die bestimmt, welche Datensätze ausgewählt werden. Nachdem Datensätze über die GROUP BY-Klausel gruppiert wurden, bestimmt die HAVING-Klausel, welche Datensätze angezeigt werden:

SELECT CategoryID, 
Sum(UnitsInStock) 
FROM Products 
GROUP BY CategoryID 
HAVING Sum(UnitsInStock) > 100 And Like "BOS*";

Eine HAVING-Klausel kann bis zu 40 Ausdrücke enthalten, die über logische Operatoren wie Und und Oder miteinander verknüpft werden .

Beispiel

Im folgenden Beispiel werden die Positionen ausgewählt, die mehreren Mitarbeitern in Washington zugewiesen sind. Dabei wird die EnumFields-Prozedur aufgerufen, die im Beispiel für die SELECT-Anweisung enthalten ist.

Sub HavingX() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
 
    ' Select the job titles assigned to more than one  
    ' employee in the Washington region.  
    Set rst = dbs.OpenRecordset("SELECT Title, " _ 
        & "Count(Title) as Total FROM Employees " _ 
        & "WHERE Region = 'WA' " _ 
        & "GROUP BY Title HAVING Count(Title) > 1;") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print recordset contents. 
    EnumFields rst, 25 
 
    dbs.Close 
 
End Sub 

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.