802.5 : Calcul des moyennes coefficientées pour chaque étudiant
802_5_A : moy_etudiant_et_matiere
On veut obtenir pour chaque étudiant et chaque matière la moyenne obtenue ci-contre
Nous avons ajouté la colonne nb qui permet de savoir combien de lignes ont été regroupées pour calculer la moyenne.
A l'origine, le fichier que vous avez chargé au début de l'exercice ne contient que 15 notes, 1 par étudiant dans chaque matière. Il faut ajouter des notes pour ne pas rester dans ce cas particulier.
Question
Créer la requête en mode ébauche.
Indice 1 : liste des tables à prendre en compte
Indice 2 et 3 : quels sont les attributs à placer avec la fonction "Regroupement"
Indice
Il faut prendre les 3 tables pour ajouter pour chaque ligne de note les noms de l'étudiant et de la matière ainsi que le coef de la matière.

Indice
Il nous faut obtenir autant de lignes que de combinaisons différentes (étudiant-matière).
Si un étudiant a plusieurs notes dans une même matière, nous obtiendrons une seule ligne : c'est au niveau de cette ligne que nous calculerons la moyenne
Indice
Mis à part les colonnes nb et moy_mat_et qui résultent de fonctions sur les lignes regroupées, les autres colonnes sont à affecter à la fonction regroupement.
Solution
SI DANS LA COLONNE nb, vous n'avez que des 1, ajoutez des notes.
Dans la requête précédente, nous avons ajouté une colonne calculée (Choisir expression à la place de regroupement) nommée prod pour effectuer Coef * moy_mat_et et préparer auinsi la moyenne par étudiant que l'on va mettre en place en 802_5B.
Ci-dessous, la version SQL
SELECT Tb_etudiant.nom_et, Tb_matiere.nom_mat, Count(Tb_note.Note) AS nb, Sum(Tb_note.Note) AS somme, [somme]/[nb] AS moy, Tb_matiere.Coef, [moy]*[Coef] AS prod
FROM Tb_matiere INNER JOIN (Tb_etudiant INNER JOIN Tb_note ON Tb_etudiant.id_et = Tb_note.id_et) ON Tb_matiere.id_mat = Tb_note.id_mat
GROUP BY Tb_etudiant.nom_et, Tb_matiere.nom_mat, Tb_matiere.Coef;
802_5_B : moyenne étudiant
A l'aide de la requête précédente, nous allons créer une requête intermédiaire en regroupant toutes les lignes de chaque étudiant pour calculer ensuite la moyenne générale de l'étudiant en tenant compte des moyennes qu'il a obtenue dans chaque matière : on tiendra bien sûr compte des coefficients.
Question
Ci-dessous le résultat à obtenir

Relativement à ce qu'on l'on a réalisé en 5A, il faut regrouper les lignes pour chaque étudiant et traiter sur le regroupement la somme des coef et la somme des produits que l'on a déjà préparé en 5A.