La clause HAVING dans Access spécifie les enregistrements regroupés à afficher dans une instruction SELECT dotée d’une clause GROUP BY. Une fois que GROUP BY a regroupé les enregistrements, HAVING affiche tous les enregistrements qui ont été regroupés par la clause GROUP BY et qui répondent aux critères de la clause HAVING.
Syntaxe
SELECT listechamps
FROM table WHERE critèressélection GROUP BY listechampsgroupe [HAVING critèresgroupe]Une instruction SELECT contenant une clause HAVING se compose des éléments suivants :
Composant |
Description |
listechamps |
Nom du ou des champs à extraire avec leurs alias de noms de champs, fonctions d’agrégation SQL, prédicats de sélection (ALL, DISTINCT, DISTINCTROW ou TOP), ou autres options d’instruction SELECT. |
table |
Nom de la table d'où sont extraits les enregistrements. |
critèressélection |
Critères de sélection. Si l'instruction contient une clause WHERE, le moteur de base de données Microsoft Access regroupe les valeurs après avoir appliqué les conditions WHERE aux enregistrements. |
listechampsgroupe |
Noms des champs (10 au maximum) utilisés pour regrouper les enregistrements. L'ordre des noms de champs dans listechampsgroupe détermine les niveaux de regroupement, du plus élevé au plus bas. |
critèresgroupe |
Expression déterminant quels enregistrements groupés afficher. |
Notes
La clause HAVING est facultative.
HAVING est similaire à WHERE, qui détermine quels sont les enregistrements à sélectionner. Une fois que GROUP BY a regroupé les enregistrements, HAVING détermine quels sont les enregistrements qui seront affichés :
SELECT CategoryID,
Sum(UnitsInStock) FROM Products GROUP BY CategoryID HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
Une clause HAVING peut contenir jusqu'à 40 expressions liées par des opérateurs logiques comme And et Or.