|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() hajare karim Inscription : mars 2010 Messages : 15 ![]() |
j'ai 5 tables ; chacune d'elle est reliée avec l'autre:
inscription(numinsc,nomprenom,IDniveau) niveau(IDniveau,libelle) matiere(IDmat,libellemat,Idunite,coef) evaluation(numinsc,Idmat,note,observation) unite(IDunite,libelleunite, je veux une requête qui permet d'afficher la moyenne d'un élève donné (Numinsc) dans une unité donnée (libelleunite). Bon moi j'ai essayé de créer la requête qui permet d'afficher les notes de chaque élève dans tous les matières avec une autre colonne qui calcule coef*note, mais je sais pas comment calculer la moyenne de chaque élève dans une unité qui contient bien sur un tel nombre de matières,c'est un peu difficile,: Code :
cordialement hajer. |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 085 ![]() |
Bonjour,
AVG renvoie la moyenne d'une valeur, donc tu peux faire ainsi: Code SQL :
Tatayo. |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() hajare karim Inscription : mars 2010 Messages : 15 ![]() |
merci,
mais la moyenne dans ce cas ne se calcule pas comme ça!!(avg(note)) car chaque matière a un coefficient donc ne pas oublier de multiplier chaque note avec son coefficient et de diviser ensuite la somme sur la somme des coefficients ça veut dire que la moyenne d'un élève dans l’unité français par exemple est égale à : (n1*coef1+n2*coef2+n*coef n)/coef1+coef2+coef n sachant que n1 et coef1 est la note et le coef concernant la matière 1 et n2.... car chaque unité peut englober plusieurs matières. la moyenne dans ce cas est un peu plus difficile que avg(note), je pense que tu comprends...!! |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Robert LabrousseDéveloppeur décisionnel Inscription : février 2009 Messages : 79 ![]() |
Bonjour,
Et si vous essayez : |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() hajare karim Inscription : mars 2010 Messages : 15 ![]() |
oui j'ai déjà essayé cette formule mais ça ne marche pas, voilà le code:
Code :
|
||
|
|
00
|
|
|
#6 | |||||
|
Membre habitué
![]() Robert LabrousseDéveloppeur décisionnel Inscription : février 2009 Messages : 79 ![]() |
Citation:
Code :
Code :
|
|||||
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : octobre 2008 Messages : 1 507 ![]() |
Le problème n'est pas dans la formule mais dans la requête.
note et coef ne devraient par être dans le GROUP BY. En effet on calcule la moyenne des notes par étudiant, par année, par matière etc.. ça OK, mais la moyenne des notes par note, ça n'a pas de sens. Même problème dans les colonnes du SELECT on ne peut pas sortir à la fois la note dans une colonne et la moyenne des notes dans la colonne d'à côté, puisqu'une moyenne correspond à plusieurs notes. |
|
|
10
|
|
|
#8 |
|
Invité de passage
![]() hajare karim Inscription : mars 2010 Messages : 15 ![]() |
Le problème n'est pas dans la formule mais dans la requête.
note et coef ne devraient par être dans le GROUP BY. si j'efface la note et le coef dans le group by,une erreur s'est produite:La colonne 'evaluation.Note' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY. et la meme chose pour le coef. En effet on calcule la moyenne des notes par étudiant, par année, par matière etc.. ça OK, mais la moyenne des notes par note, ça n'a pas de sens. Même problème dans les colonnes du SELECT on ne peut pas sortir à la fois la note dans une colonne et la moyenne des notes dans la colonne d'à côté, puisqu'une moyenne correspond à plusieurs notes. de ce qui concerne ce probleme tu as raison,mais juste je teste le resultat sur sql server,pour l'appliquer sur visual basic donc ce probleme n'aura pas de sens |
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() hajare karim Inscription : mars 2010 Messages : 15 ![]() |
merci pour tous ce qui poster une réponse dans ce sujet,
Enfin j'ai résolu le probleme,voila le code: Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com