Bonsoir à tous,
Je vous remercie d'avance pour votre aide, je vais essayer de faire le message le plus précis possible. Je n'ai pas vu de demande similaire sur internet, désolé si plusieurs topics en parlent déjà.
Je vous donne le contexte: je souhaite afficher un tableau qui donne le nombre de match par joueur par groupe auquel il a joué. (il n'y a actuellement que 4 groupes)
je voudrais par exemple voir:
nom | match en 1 | match en 2 | match en 3 | match en 4
toto 3 2 0 1
J'ai 3 tables (si je me souviens bien, c'est souligné pour clé primaire, je mets la clé étrangère en italique):
dJoueur (idJoueur, nom, prenom)
dMatch (idMatch) // c'est pour distinguer les journées de championnats, ca pourra me servir plus tard)
dGdm (idGdm, idJoueur, idMatch, groupe)
J'ai essayé par 2 manières différentes:
1 j'ai testé par requête imbriqué, mais je suis bloqué sur le cas simple:
J'ai comme erreur: MySQL a répondu : Documentation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT nom as p FROM dJoueur u Inner JOIN ( SELECT COUNT(dGdm.idJoueur) AS nbMatch FROM dGdm GROUP BY dGdm.idJoueur ) tor ON u.idJoueur = tor.idJoueur
#1054 - Champ 'tor.idJoueur' inconnu dans on clause
J'ai essayé de mettre des tor au lieu des dGdm de partout, puis mettre des dGdm de partout, à chaque fois je bloque je ne comprends pas pourquoi.
j'ai donc essayé :
Ca ne marche pas. Sans le Having je sens que je suis proche de la solutions, j'ai 4 fois la même colonne mais plusieurs lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT j.nom, COUNT(g.groupe) AS nbM1, COUNT(g.groupe) AS nbM2, COUNT(g.groupe) AS nbM3, COUNT(g.groupe) AS nbM4 FROM `dJoueur` j, dGdm g, dMatch m WHERE j.idJoueur = g.idJoueur AND g.idMatch = m.idMatch GROUP BY j.idJoueur, g.groupe having g.groupe =1 having g.groupe =2 having g.groupe =3 having g.groupe =4
J'ai la sensation qu'il faille que je fasse une requête imbriqué, mais même en lisant des articles un peu similaire je n'arrive pas à adapter à ma situation.
J'espère ne pas faire une erreur stupide, et je vous remercie encore de votre aide.
Partager