Problème requête ACCESS - SQL/NoSQL - Programmation
Marsh Posté le 09-12-2009 à 22:19:48
1) dans le modèle que tu fournis, l'entité Matière ne sert à rien. dans un cours, on enseigne une matière et une seule, pas 36. c'est donc une relation (1,1) pour laquelle une clé étrangère est inutile
2) choisir ce qui est manifestement un type alphanumérique comme clé primaire c'est vraiment pas génial, ça devrait même être interdit (tables matière et classe)
3) les jointures, on les fait par INNER JOIN, pas par WHERE. si c'est ton prof qui t'a dit de faire comme ça, alors signale le au rectorat et balance le au bucher.
4) ta requête est pas mal, mais si tu veux calculer la moyenne par élève, alors tu devras la lancer autant de fois que tu as d'élèves ce qui là encore n'est pas top.
tu dois la modifier pour que ton recordset ressemble à ceci :
|
un exemple pour les élèves TOTO, TUTU et TATA pour les matières HISTOIRE et MATHS :
|
si tu arrives à faire ressembler ta 1ere requête à ça, alors la seconde te tombera sous le sens.
bon courage
Marsh Posté le 10-12-2009 à 14:37:50
Salut,
Merci pour ta réponse.
Je parviens à obtenir le résultat que tu indiques pour la 1è requête, grâce à celle-ci :
Code :
|
qui me renvoie :
|
En revanche, la 2è requête ne me saute pas aux yeux pour reprendre ton expression
J'avais pensé à un truc comme ça
Code :
|
Ça me renvoie des résultats presque cohérents, sauf si un élève a moins de notes qu'un autre, je m'explique.
en maths, toto a eu 17 au DS1 (coeff 2) et 11 au DS2 (coeff 1)
en maths, tata a eu 10 au DS1 (coeff 2 donc), mais aucune au DS2
toto a une moyenne de 45/3 = 15
tata a une moyenne de 20/2 = 10
la moyenne de classe doit donc être de (10+15)/2= 12.5
Or, avec la requête ci dessus, ça ne différencie pas les élèves: Ca va faire (17*2 + 11*1 + 10*2) / (2+1+2) = 13
Ça ne fait donc pas "une moyenne des moyennes", mais une moyenne de toute les notes.
En espérant m'être fait comprendre...
Merci
Marsh Posté le 09-12-2009 à 20:50:32
bonsoir,
dans un cadre scolaire, je dois développer une appli permettant, entre autre, de calculer des moyennes à partir de notes
je souhaite faire 2 choses :
calculer les moyennes par élève, dans chaque matière
calculer les moyennes de chaque classe, dans chaque matière
concernant la première, j'y arrive avec la requête suivante:
Pour la seconde en revanche, impossible d'y parvenir. Pourtant, ça me parait tout bête, puisque j'arrive à calculer les moyennes individuelles. Je pensais juste faire la somme de celles-ci, divisées par le nombre d'élève dans la classe, par exemple (il y a peut être d'autres solutions).
Merci d'avance à ceux qui tenteront de m'aider...