Les clauses WHERE et HAVING ont des usages en apparence similaires mais en réalité leurs rôles sont différents.
SELECT [Stock N].Référence, [Stock N].Désignation, Sum([Stock N].Quantité) AS SommeDeQuantité FROM [Stock N] WHERE [Stock N].PU>50 GROUP BY [Stock N].Référence, [Stock N].Désignation HAVING (((Sum([Stock N].Quantité))>1000));
Ainsi, leurs fonctions se résument ainsi :
- WHERE : La clause WHERE conditionne l’extraction de données au respect de certains critères, cf détails sur la rédaction de requêtes SQL avec la clause WHERE ;
- HAVING : La clause HAVING positionnée à la fin d’une requête regroupement permet d’ajouter un critère (à l’aide d’opérateurs de comparaison) afin de restreindre le nombre de lignes compris dans le résultat de la requête.
Ces deux clauses sont combinables dans une requête regroupement (et uniquement dans ce type de requête). Dans ce cas, la clause WHERE conditionne les données avant le regroupement et HAVING conditionne les données une fois regroupées. Dans la construction de la requête, WHERE se positionne avant GROUP BY et HAVING après.
Dans l’exemple qui précède, la requête va traiter les données de la table Stock (FROM) dont le prix unitaire est supérieur à 50 € (WHERE) puis regrouper (GROUP BY) les références en stock (répondant à ce critère de prix) en additionnant les quantités par référence (SUM) et enfin ne donner en résultat que les références dont la quantité est supérieure à 1000 (clause HAVING).
Approfondir le sujet : Maîtriser le langage de requête SQL / Analyse de données


Derniers articles parBenoît RIVIERE (voir tous)
- Bases d’information publiques utiles à l’évaluation de l’intégrité des tiers (guide de l’AFA) - dimanche 19 mars 2023
- Excel : Obtenir les distances et temps de parcours d’un trajet Google Maps - samedi 18 mars 2023
- Evaluation de biens immobiliers : le prix de l’immobilier en France - samedi 11 mars 2023
- Règlement ANC n° 2022-06 relatif à la modernisation des états financiers : 5ème partie – Impact sur le calcul de la VA CVAE et sur celui de la RSP - dimanche 5 mars 2023
- Lazarus : afficher les caractères accentués (mode console) - mardi 28 février 2023