Besoin de retrouner des 0 aussi dans une requête SQL avec JOIN
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 :
Code:
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"; |
Cette requête fonctionne presque comme je le voudrais.
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 :
Code:
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'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.
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