Dans cette fiche...

<Retour SQL>

Début de page Les fonctions de calcul

En SQL, vous disposez d'un certain nombre de fonctions pour effectuer des calculs.
Associées à la clause WHERE, ces fonctions travaillent sur une partie de la table seulement, par critères.

Les fonctions de calcul sont similaires aux fonctions de regroupement dans une requête classique.
On retrouve donc :

Count Pour effectuer des décomptes
Sum et Avg Pour effectuer des sommes et des moyennes
Min et Max Pour calculer un minimum, un maximum.
Var, VarP, StDev et StDevP Pour effectuer les calculs statistiques de base (variance, écart-type). Ces fonctions ne sont pas traitées ici, mais sont disponibles dans l'aide en ligne d'Access.

Consultez la fiche Taper et tester du code SQL avant de lire ce qui suit.

Début de page Syntaxe

Si votre base de données comporte 2 tables nommées tblClients et tblProduits :

SELECT Count(Téléphone) AS NbTel FROM tblClients;
SELECT Count([Numéro de téléphone]) AS NbTel FROM tblClients;
SELECT Count(Téléphone) AS NbTel FROM tblClients WHERE [Nom Client] LIKE "A*";
SELECT Count(*) AS NbClients FROM tblClients;
SELECT Avg(Prix) AS PrixMoy FROM tblProduits WHERE Catégorie="Hifi";
SELECT Max(Prix) AS PrixMax FROM tblProduits WHERE Catégorie="Alimentaire";
SELECT Min(Prix) AS PrixMin FROM tblProduits WHERE Catégorie="Alimentaire";

Début de page Explications

SELECT Count(Téléphone) AS NbTel FROM tblClients;
Cette ligne permet de compter les clients qui ont un numéro de téléphone.
  • Notez que l'on doit passer par une instruction SELECT pour faire le décompte (dans la logique SQL, on sélectionne le décompte des numéros de téléphone).
  • Notez aussi qu'on met en application le mot-clef AS, qui permet de donner un nom (NbTel) au calcul, ce qui facilitera son exploitation par la suite (en ASP par exemple). Le AS n'est pas obligatoire, mais fortement conseillé !
  • Notez enfin que, contrairement aux SELECT classiques qui produisent souvent plusieurs lignes de résultat, on n'obtient ici qu'une seule ligne (et une seule colonne d'ailleurs) : le nombre de clients concernés.
 
SELECT Count([Numéro de téléphone]) AS NbTel FROM tblClients;
Le calcul est identique à celui plus haut. Ici, comme le nom de champ comporte des espaces, on l'a entouré de crochets.
 
SELECT Count(Téléphone) AS NbTel FROM tblClients WHERE [Nom Client] LIKE "A*";
Plus acrobatique : on calcule le nombre de clients dont le nom démarre par un A, et qui ont un numéro de téléphone dans la table.
 
SELECT Count(*) AS NbClients FROM tblClients;
Simple et pratique : on calcule le nombre de clients. Le résultat s'appellera NbClients, grâce au AS.
 
SELECT Avg(Prix) AS PrixMoy FROM tblProduits WHERE Catégorie="Hifi";
Cette ligne calcule la moyenne des prix, pour tous les produits de la catégorie Hifi.
Le résultat sera nommé PrixMoy.
 
SELECT Max(Prix) AS PrixMax FROM tblProduits WHERE Catégorie="Alimentaire";
Une formalité maintenant ! On calcule le prix maximum dans la catégorie Alimentaire.
 
SELECT Min(Prix) AS PrixMin FROM tblProduits WHERE Catégorie="Alimentaire";
Et enfin : le prix minimum pour la catégorie Alimentaire.