Bonjour,
Je suis confronté à un problème que je n'arrive pas expliquer :/
Je dois afficher plusieurs compteurs reprenant les enregistrements d'une table (t2) pour tous les users présents dans une autre table (t1).
Voici ma requête :
Cette requête me donne comme résultat :
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 select cor.cdcorr, count(ali1.cdcorr) as totalActesEnAlerte, count(ali2.cdcorr) As totalActesEnAlerteHC, count(ali3.cdcorr) As totalActesNonLus, count(ali4.cdcorr) As totalActesNonLusHC from t1 cor left join t2 ali1 on (cor.cdcorr=ali1.cdcorr and (ali1.TYPALR = 'I' Or ali1.TYPALR = 'P' Or ali1.TYPALR = 'B') And (ali1.ETALER = 'N')) left Join t2 ali2 On (cor.cdcorr = ali2.cdcorr And (ali2.TYPALR = 'I' Or ali2.TYPALR = 'P' Or ali2.TYPALR = 'B') And (ali2.ETALER <> 'N' And ali2.ETALER <> 'C')) left Join t2 ali3 On (cor.cdcorr = ali3.cdcorr And (ali3.TYPALR = 'C' Or ali3.TYPALR = 'G' Or ali3.TYPALR = 'K') And (ali3.ETALER = 'N')) left join t2 ali4 On (cor.cdcorr = ali4.cdcorr And (ali4.TYPALR = 'C' Or ali4.TYPALR = 'G' Or ali4.TYPALR = 'K') And (ali4.ETALER <> 'N' And ali4.ETALER <> 'C')) where cor.cdcorr='059709' and cor.RESEAR = '38' group by cor.cdcorr Order By cor.CDCORR Asc
totalActesEnAlerte : 0
totalActesEnAlerteHC : 0
totalActesNonLus : 25
totalActesNonLusHC : 25
J'ai été étonné des résultats et j'ai divisé cette requête en 4 pour vérifier les compteurs. Et la, voici le résultat, qui eux sont correctes :
totalActesEnAlerte : 0
totalActesEnAlerteHC : 0
totalActesNonLus : 5
totalActesNonLusHC : 5
Noté les 2 derniers compteurs de mes 4 requêtes et ceux de la requête avec les left...Il y a un 5*5 qui traine ^^
J'ai un autre exemple plus probant ou mes compteurs, sur les 4 requêtes me donne :
totalActesEnAlerte : 3
totalActesEnAlerteHC : 27
totalActesNonLus : 120
totalActesNonLusHC : 10
Et lorsque je lance ma requête avec mes 4 jointures, mes compteurs sont :
totalActesEnAlerte : 97200
totalActesEnAlerteHC : 97200
totalActesNonLus : 97200
totalActesNonLusHC : 97200
Je ne comprend pas pourquoi il fait ca :/
Auriez-vous une explication ? Ou alors, je comprend rien...
Il faut que j'affiche ces 4 compteurs pour un user. Y a-t-il une autre méthode permettant de le faire...
Merci,
Vincent
Partager