Bonjour à tous!
Donc voila j'ai créer une base de donnée sous access comme suit:
table:
EQUIPE avec comme clé primaire "equipe".(seul champ)
JOURNEE avec comme clé primaire "journee".(seul champ)
RENCONTRE avec comme clé primaire et étrangère "equipe" de EQUIPE, "equipe2" de EQUIPE(association réflexive), "journee" de JOURNEE et comme champ "butsmarquéséquipe1"(nombre de buts marqué par "equipe") et "butsmarquéséquipe2"(nombre de buts marqués par "équipe2")
Donc la traduction serait: une équipe rencontre une autre équipe à une certaine journée.
A partir de cela, je souhaiterait réaliser une requete me permettant d'avoir le nombre de points par équipe sachant:
1match gagné = 3 points
1match perdu = 1 points
J'ai tout d'abord réalisé une requete me permettant davoir le nombre de points pour une équipe:
Cette requete fonctionne mais lorsque j'essaye de faire une requete pour afficher toutes les équipes avec leurs points je n'y arrive pas!
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 SELECT equipe, (SELECT count(equipe)*3 FROM rencontre WHERE butsmarquéséquipe1 > butsmarquéséquipe2 And equipe='om') + (SELECT count(equipe)*3 FROM rencontre WHERE butsmarquéséquipe2 > butsmarquéséquipe1 And equipe2='om') + (SELECT count(equipe)*1 FROM rencontre WHERE butsmarquéséquipe1 = butsmarquéséquipe2 And (equipe = 'om' or equipe2 = 'om')) FROM rencontre WHERE equipe='om' GROUP BY equipe;
On m'a dit alors qu'il fallait peut-etre utiliser un "LEFT JOIN" et on est arriver a cette requete(les matchs nuls ne sont pas traités, c'est juste une ébauche):
Cette requete ne fonctionne pas, cela affiche: "erreur de sybtaxe opérateur absent dans: E.equipe = B.equipe2 LEFT JOIN (SELECT equipe FROM rencontre WHERE butsmarquéséquipe1 > butsmarquéséquipe2) A ON E.equipe = A.equipe GROUP BY E.equipe;"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT E.equipe, COUNT(A.equipe)*3 FROM equipe E LEFT JOIN (SELECT equipe2 FROM rencontre WHERE butsmarquéséquipe1 < butsmarquéséquipe2) B ON E.equipe = B.equipe2 LEFT JOIN (SELECT equipe FROM rencontre WHERE butsmarquéséquipe1 > butsmarquéséquipe2) A ON E.equipe = A.equipe GROUP BY E.equipe;
On a chercher mais malheureusement pas trouver!
Donc voila j'aimerai savoir s'il faut bien utiliser un LEFT JOIN et si vous n'auriez pas une requete a me proposer pour résoudre ce probleme!!
Merci d'avance!
je souhaite afficher une modification a mon message
un match nul = 1 point
match perdu = 0 bien entendu
voila dsl.
merci
Partager