Salut à toutes et à tous,
J'essaye d'écrire une requête pour me sortir un comptage d'élément dans une table intermédaire qui crée un lien n-n entre 2 tables.
Voici la requête :
Cette requête fonctionne presque comme je le voudrais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT "TblSecteurs"."TblSecteurs_NumMandat", "TblSecteurs"."TblSecteurs_NumSecteur", count("TblIntermediairePPSecteurs"."TblIntermediairePPSecteurs_PPID") AS "NbrPP" FROM "TblIntermediairePPSecteurs" JOIN "TblSecteurs" ON "TblSecteurs"."TblSecteurs_ID" = "TblIntermediairePPSecteurs"."TblIntermediairePPSecteurs_SecteurID" JOIN "TblPP" ON "TblPP"."TblPP_ID" = "TblIntermediairePPSecteurs"."TblIntermediairePPSecteurs_PPID" WHERE "TblPP"."TblPP_Graphique" = true GROUP BY "TblSecteurs"."TblSecteurs_NumMandat", "TblSecteurs"."TblSecteurs_NumSecteur" ORDER BY "TblSecteurs"."TblSecteurs_NumMandat", "TblSecteurs"."TblSecteurs_NumSecteur";
Elle me retourne, par exemple :
TblSecteurs_NumMandat| TblSecteurs_NumSecteur | NbrPP
-------------------------------------------------------------------
2791 | 2 | 12
2791 | 3 | 7
2791 | 4 | 3
2791 | 5 | 1
2791 | 6 | 2
2791 | 7 | 3
2791 | 9 | 1
2791 | 10 | 2
Remarquez qu'il n'y a pas de ligne 1 ni de ligne 8.
Normal me direz-vous, puisqu'il n'y a pas de ligne reprenant son Id dans le champs TblIntermediairePPSecteurs_PPID de la table TblIntermediairePPSecteurs.
Oui bien sur, mais c'est que j'aurais besoin de ces 0.
J'ai bien essayé cette requête mais elle me donne exactement la même chose :
J'espérais que le coalesce me retournerait un 0 mais il semble que le problème vienne du GROUP BY. toutefois je ne vois pas comment résoudre le pbl, aussi je fais appel à votre ingéniosité pour m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT "TblSecteurs"."TblSecteurs_NumMandat", "TblSecteurs"."TblSecteurs_NumSecteur", coalesce(count("TblIntermediairePPSecteurs"."TblIntermediairePPSecteurs_PPID"),0) AS "NbrPP" FROM "TblIntermediairePPSecteurs" JOIN "TblSecteurs" ON "TblSecteurs"."TblSecteurs_ID" = "TblIntermediairePPSecteurs"."TblIntermediairePPSecteurs_SecteurID" JOIN "TblPP" ON "TblPP"."TblPP_ID" = "TblIntermediairePPSecteurs"."TblIntermediairePPSecteurs_PPID" WHERE "TblPP"."TblPP_Graphique" = true GROUP BY "TblSecteurs"."TblSecteurs_NumMandat", "TblSecteurs"."TblSecteurs_NumSecteur" ORDER BY "TblSecteurs"."TblSecteurs_NumMandat", "TblSecteurs"."TblSecteurs_NumSecteur";
J'ai bien entendu aussi essayer de remplacer les JOIN par des RIGHT OUTER JOIN ou par des RIGHT JOIN mais ça n'a rien donné de différent.
Merci de vos z'avis z'avisés,
Jean-Marc
Partager