Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia
Cours Informatique Appliquée
Gestion de Base de données avec ACCESS
Semaine 01 Avril – 07 Avril
Amal EL MZABI
Requête de sélection avec opération
En plus de faire des requêtes avec des critères ou des
fonctions intégrées d'Access, il est aussi possible de
regrouper les champs pour faire des opérations, grâce aux
fonctions d’agrégation (regroupement). Ces fonctions
effectuent quelques statistiques de bases sur des tables,
telles que la somme, la moyenne, de champs numérique.
Parmi d'autres opérations, il est aussi possible de compter
le nombre d'enregistrements qui répondent à certains
critères comme compter par exemple le nombre de clients
habitant Casablanca.
2
Pour utiliser les fonctions d’agrégation En mode QBE,
créer une requête de sélection, ajouter les tables, les
champs et les critères qui seront utilisées dans la requête
puis dans le groupe Afficher/Masquer cliquer sur le
bouton
Une nouvelle ligne "Opération" apparaît dans la grille de
création requête, c'est grâce à elle que nous allons faire
nos opérations.
3
Exemple de fonctions d’agrégation (regroupement)
− Regroupement : Permet de factoriser un traitement effectué
sur un champ en fonction de chaque valeur d’un autre champ.
− Somme : Calcule la somme des valeurs d'un champ (numérique
ou monétaire)
− Moyenne : Calcule la moyenne des valeurs d'un champ
(numérique ou monétaire)
− Min : Détermine la plus petite valeur d'un champ (sauf mémo,
Ole…)
− Max : Détermine la plus grande valeur d'un champ (sauf
mémo, Ole…)
4
Fonctions d’agrégation (suite)
− Compte : Calcule le nombre de valeurs non nulles d'un
champ (sauf mémo, Ole…).
− StDev : Calcule l'écart type des valeurs d'un champ
(numérique ou monétaire).
− Var : Calcule la variance des valeurs d'un champ
(numérique)
− Premier : Donne la 1ère valeur d'un champ pour les
critères demandés (sauf mémo, Ole…)
− Dernier : Donne la dernière valeur d'un champ pour les
critères demandés (sauf mémo, Ole…)
Exemple 1
Dans la BD « Gestion des commandes », on veut compter le
nombre de clients pour chaque ville.
Alias
Fonction Compte appliquée sur
Regroupement sur les villes le champ CodeClient
6
En mode SQL :
Les principales fonctions d’agrégation en SQL sont les
suivantes :
AVG() pour calculer la moyenne sur un ensemble
d'enregistrements.
COUNT() pour compter le nombre d'enregistrement
SUM() pour calculer la somme sur un ensemble
d’enregistrements.
MIN() pour récupérer la valeur minimale des valeurs d’un
champ (pour des données numériques ou alphanumérique).
MAX() pour récupérer la valeur maximale de la même manière
que MIN().
D’une manière générale, on utilise la syntaxe suivante pour
ajouter une fonction d’agrégation :
Select fonction(champ)
From Table_Source
[Where Condition]
Group by Nom_Champ;
Pour regrouper les lignes, on utilise la commande GROUP
BY suivi du nom du champ à grouper. Elle se place après la
clause Where si elle existe sinon après From.
8
Reprenons l’exemple précédent :
Select Ville, Count(CodeClient) As Nombre de Clients
From Clients
Group By Ville;
Exemple 2
Dans la BD « Gestion des commandes », on veut afficher,
pour chaque désignation de produit, la quantité totale
commandée et son prix payé.
9
En mode SQL :
Select Desig, Sum(Quantité) AS QuantitéTotale,
Sum([Quantité]*[PU]) AS PrixTotal
From Produits Inner Join DétailsCommande
ON [Link] = Dé[Link]
Group By Desig; 10
Conditions sur les fonctions d'agrégation en SQL
Il n'est pas possible d'utiliser la clause WHERE pour faire
des conditions sur une fonction d'agrégation. Par exemple, si
dans l’exemple 2, on veut afficher les désignations dont la
quantité totale est plus de 40, la requête suivante ne
fonctionnera pas.
Select Desig, Sum(Quantité) AS QuantitéTotale,
Sum([Quantité]*[PU]) AS PrixTotal
From Produits Inner Join DétailsCommande ON [Link]
= Dé[Link]
Where Sum(Quantité) > 40
Group By Desig; 11
Alors il faut utiliser la clause HAVING. Cette clause se
place juste après le GROUP BY.
Select Desig, Sum(Quantité) AS QuantitéTotale,
Sum([Quantité]*[PU]) AS PrixTotal
From Produits Inner Join DétailsCommande ON [Link]
= Dé[Link]
Group By Desig
Having Sum(Quantité) > 40 ;
12
Gestion de base de données sous Access
Application – Cours (Suite)
Partie IV :
Créer les requêtes suivantes (mode QBE et SQL)
Requête avec opération :
1. Afficher le nombre total des clients
2. Afficher le nombre de commandes par clients.
3. Afficher la quantité moyenne, la quantité maximale et la quantité minimale
de chaque produit commandé dans les 6 mois avant le mois courant.
4. Afficher pour chaque client, le code, le nom et le prénom dans une seul
colonne et le nombre de ses commandes. On s’intéresse aux commandes
faites ces deux dernières années.
5. Afficher le nombre de commandes mensuelles passées par les clients de
chaque ville, où le mois est donné comme paramètre et est exprimé en
lettres.
6. Pour chaque commande, afficher le numéro, le montant hors taxe HT, et le
montant TTC avec un taux de TVA variable. Limiter la sélection
uniquement pour les commandes dont la durée (nombre d’année qui sont
passés depuis la création à nos jours) est supérieure à un an et ayant un
montant TTC entre 15000 et 20000.