|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Kamel GhanemEnseignant Inscription : août 2011 Messages : 42 ![]() |
Salut ,
J'ai les tables suivantes : Classe ( clasID,libClas,nbre_elv) Eleve (elvID,nom,prénom,datenais,#classeID,...) Matière ( matID,libMat,typeMat) Controle ( contrID,dateContr,TypeContr,#matID ) Note ( contrID,elvID,Note ) Je veux calculer la moyenne de chaque élève dans chaque matière et dans chaque trimestre mais la formule est assez complexe ce qui m'a posé beaucoup de frustrations pour la calculer en SQL , en voici la formule : MoyMatière = [(CC + Devoir1 + Devoir 2)/3)*2 + Composition] / 5 CC = Contrôle Continu ; Devoir1 , Devoir2 et enfin un examen final qu'on appelle une composition.Tous ces contrôles , l'élève les passe chaque trimestre. Voilà j'ai trouvé une solution qui consiste à diviser le problème en deux : - calculer la première partie de la formule à savoir : [(CC + Devoir1 + Devoir2)/3] * 2 en faisant ça : Code :
C'est pour ça que j'ai mis "dateContr" compris entre deux dates qui correspondent en fait au 1er trimestre ----> qui va du 10/10/2011 au 21/12/2011, mais le problème comment faire référence à la composition dans la requête SQL , en d'autres termes : comment ajouter l'autre partie de la formule dans la requête SQL pour calculer la moyenne par élève et par matière. Aidez moi s'il vous plait c'est le seul problème qui me reste à résoudre. |
||
|
|
00
|
|
|
#2 | ||||||
![]() ![]() |
Dans l'autre discussion sur la structure de tes tables, tu avais eu la bonne idée de mettre dans la table controle l'identifiant du trimestre. En effet, je pense que les trimestres ne se déroulent pas chaque année aux mêmes dates et il me semble utile d'avoir une table des trimestres.
Trimestre (trimID, libTrim, dateDebutTrim, dateFinTrim) Controle ( contrID,#MatiereID,TypeControle,DateControle ,#trimID) On va commencer par calculer (CC + Devoir1 + Devoir 2)/3), c'est à dire la moyenne des notes qui ne sont pas du type 'composition' : Code :
Ensuite on fait la même chose pour les compositions, mais cette fois pas besoin de GROUP BY pusiqu'il n'y a semble t-il qu'une seule composition par triplet {élève, matière, trimestre} : Code :
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||||
|
00
|
|
|
#3 |
|
Invité régulier
![]() Kamel GhanemEnseignant Inscription : août 2011 Messages : 42 ![]() |
Salut ,
C'est avec une grande joie et une profonde reconnaissance que je vous remercie de tout mon coeur , vous m'avez ouvert les yeux sur une nouvelle approche pour l'analyse et la résolution de problèmes relatifs aux bases de données surtout le SQL qui est vraiment un puissant outil de traitement. Mille Mercis. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com