Klauzula HAVING w programie Access określa, które zgrupowane rekordy są wyświetlane w instrukcji SELECT zawierającej klauzulę GROUP BY. Gdy klauzula GROUP BY połączy rekordy, klauzula HAVING wyświetla wszystkie zgrupowane rekordy, które spełniają warunki określone w klauzuli HAVING.
Składnia
SELECT lista_pól
FROM tabela WHERE kryteria_wyboru GROUP BY lista_pól_grupowania [HAVING kryteria_grupowania]Instrukcja SELECT zawierająca klauzulę HAVING składa się z następujących segmentów:
Segment |
Opis |
lista_pól |
Nazwa pola lub pól, jakie mają być pobierane wraz ze wszystkimi ewentualnymi aliasami nazw pól, funkcje agregujące w języku SQL, orzeczenia wyboru (ALL, DISTINCT, DISTINCTROW i TOP) lub inne opcje instrukcji SELECT. |
tabela |
Nazwa tabeli, z której są pobierane rekordy. |
kryteria_wyboru |
Kryteria wyboru. Jeśli instrukcja zawiera klauzulę WHERE, aparat bazy danych programu Microsoft Access grupuje wartości po zastosowaniu warunków klauzuli WHERE do rekordów. |
lista_pól_grupowania |
Nazwy maksymalnie 10 pól używanych do grupowania rekordów. Kolejność nazw pól na liście lista_pól_grupowania określa poziomy grupowania od najwyższego do najniższego. |
kryteria_grupowania |
Wyrażenie określające, które zgrupowane rekordy będą wyświetlane. |
Uwagi
Klauzula HAVING jest opcjonalna.
Klauzula HAVING przypomina klauzulę WHERE, która określa zakres wybieranych rekordów. Analogicznie, gdy rekordy zostaną pogrupowane przy użyciu instrukcji GROUP BY, klauzula HAVING określa, które rekordy są wyświetlane.
SELECT CategoryID,
Sum(UnitsInStock) FROM Products GROUP BY CategoryID HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
Klauzula HAVING może zawierać maksymalnie 40 wyrażeń połączonych operatorami logicznymi, takimi jak And (Oraz) czy Or (Or).