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)
- Fusionner plusieurs fichiers PDF avec Python - mardi 23 juillet 2024
- Révisez les comptes d’une entreprise à partir de son FEC - lundi 15 juillet 2024
- Clôtures comptables : analysez vos FEC avant de les archiver… - dimanche 30 juin 2024
- Excel : collecter des données juridiques sur les entreprises avec l’API SIRENE – 2ème partie : base SIRET (établissements) - lundi 27 mai 2024
- Analyse de données & FEC provisoire : créer des numéros d’écriture avec un script Python - samedi 27 avril 2024