La clausola HAVING in Access specifica quale gruppo di record viene visualizzato in un'istruzione SELECT con una clausola GROUP BY. Dopo il raggruppamento tramite GROUP BY, la clausola HAVING consente di visualizzare i record raggruppati dalla clausola GROUP BY che soddisfano le condizioni della clausola HAVING.
Sintassi
SELECT elencocampi
FROM tabella WHERE criteriselezione GROUP BY elencocampigruppo [HAVING criterigruppo]Un'istruzione SELECT che include una clausola HAVING è composta dalle parti seguenti:
Parte |
Descrizione |
elencocampi |
Nome del campo o dei campi da recuperare insieme agli eventuali alias dei nomi di campo, alle funzioni di aggregazione SQL, ai predicati di selezione (ALL, DISTINCT, DISTINCTROW o TOP) e altre opzioni dell'istruzione SELECT. |
tabella |
Nome della tabella di cui vengono recuperati i record. |
criteriselezione |
Criteri di selezione. Se nell'istruzione è inclusa una clausola WHERE, i valori vengono raggruppati dal motore del database di Microsoft Access dopo l'applicazione delle condizioni della clausola WHERE ai record. |
elencocampigruppo |
Nomi di un numero massimo di 10 campi utilizzati per raggruppare i record. L'ordine dei nomi dei campi in elencocampigruppo determina i livelli di raggruppamento, dal livello più alto a quello più basso. |
criterigruppo |
Espressione che determina i record raggruppati da visualizzare. |
Osservazioni
La clausola HAVING è facoltativa.
La clausola HAVING è simile alla clausola WHERE, che consente di stabilire i record selezionati. La clausola HAVING consente di specificare i record visualizzati dopo che questi sono stati raggruppati dalla clausola GROUP BY:
SELECT CategoryID,
Sum(UnitsInStock) FROM Products GROUP BY CategoryID HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
In una clausola HAVING è possibile includere fino a 40 espressioni collegate mediante operatori logici, quali And e Or.