Freigeben über


Gruppieren von Datensätzen in einem Resultset mithilfe von Access SQL

Manchmal sind Datensätze in einer Tabelle logisch miteinander verknüpft, wie im Fall der Rechnungstabelle. Da für einen Kunden viele Rechnungen vorhanden sein können, ist es möglicherweise nützlich, alle Rechnungen für einen Kunden als eine Gruppe zu behandeln, um statistische und Zusammenfassungsinformationen zu der Gruppe zu finden.

The key to grouping records is that one or more fields in each record must contain the same value for every record in the group. In the case of the invoices table, the CustomerID field value is the same for every invoice a particular customer has.

Um eine Gruppe von Datensätzen zu erstellen, verwenden Sie die GROUP BY-Klausel mit dem Namen des Felds oder der Felder, mit denen Sie gruppieren möchten.

SELECT CustomerID, Count(*) AS [Number of Invoices], 
    Avg(Amount) AS [Average Invoice Amount] 
    FROM tblInvoices 
    GROUP BY CustomerID 

Beachten Sie, dass die Anweisung einen Datensatz zurückgeben wird, der die Kundennummer, die Anzahl der Rechnungen für einen Kunden und die durchschnittliche Rechnungssumme für jeden Kunden anzeigt, für den ein Rechnungsdatensatz in der Rechnungstabelle vorhanden ist. Da alle Rechnungen eines Kunden als Gruppe behandelt werden, können Sie die Anzahl der Rechnungen ermitteln und dann die durchschnittliche Rechnungssumme bestimmen.

Sie können eine Bedingung auf Gruppenebene angeben, indem Sie die HAVING-Klausel verwenden, die der WHERE-Klausel ähnelt. Beispielsweise gibt die folgende Abfrage nur die Datensätze für jeden Kunden zurück, dessen durchschnittliche Rechnungssumme weniger als 100 beträgt:

SELECT CustomerID, Count(*) AS [Number of Invoices], 
    Avg(Amount) AS [Average Invoice Amount] 
    FROM tblInvoices 
    GROUP BY CustomerID 
    HAVING Avg(Amount) < 100 

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.