Bonjour,
Je réalise un requete avec jointure pour faire la moyenne de note avec des coefficients, mais ma requete n'a pas l'air de donner le bon résultat.
J'ai deux tables : une table note (dans laquelle j'ai ma moyenne par module) et une table module(dans laquelle j'ai mes coefficients de mes modules) :
Ce que je veux faire, c'est faire la moyenne générale de l'ensemble des modules en associant les coefficients au bon module.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 CREATE TABLE modules ( NomModule VARCHAR(30) NOT NULL, NomFormation VARCHAR(20) NOT NULL, DateFormation INT NOT NULL, CoeffModule INT NOT NULL, NumSemestre VARCHAR(5) NOT NULL, PRIMARY KEY(NomModule,NomFormation,DateFormation,NumSemestre), FOREIGN KEY (NomFormation,DateFormation) REFERENCES formation(NomFormation,DateFormation) ); CREATE TABLE note ( IdEtudiant VARCHAR(20) NOT NULL, NomModule VARCHAR(20) NOT NULL, NomFormation VARCHAR(20) NOT NULL, DateFormation INT NOT NULL, NumSemestre VARCHAR(5) NOT NULL, PRIMARY KEY(IdEtudiant,NomModule,NomFormation,DateFormation,NumSemestre), FOREIGN KEY (IdEtudiant) REFERENCES etudiant(IdEtudiant), FOREIGN KEY (NomModule,NomFormation,DateFormation,NumSemestre) REFERENCES modules(NomModule,NomFormation,DateFormation,NumSemestre), NoteExam INT NOT NULL, NoteTp INT DEFAULT NULL, moy float );
Voilà ma requete :
Si qq voit l'erreur; merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $sqlmoygenerale = "SELECT round(SUM(note.moy*modules.CoeffModule)/SUM(modules.CoeffModule),2) FROM note,modules WHERE note.NomFormation=modules.NomFormation AND note.DateFormation=modules.DateFormation AND note.NumSemestre=modules.NumSemestre AND note.NomModule=modules.NomModule AND IdEtudiant LIKE '%$etudiantId%'";
Partager