Salut les gars, je suis un pauvre fonctionnel qui essaie de faire des rapports SQL et ma connaissance en SQL est limitée.
Je vous explique le problème:
J'ai une table A avec une liste de région (champ CODE)
J'ai une table B avec des montants en cours, et chaque ligne porte un code région, donc on peut simplifier en disant que la table porte (CODE, EN_COURS) comme champ
J'ai une table C avec des montants facturés, et chaque ligne porte aussi un code région: (CODE, FACT)
Une région peut avoir 0 à n lignes dans la table B, et 0 à n lignes dans la table C.
Mon but est d'obtenir la liste des régions avec une colonne portant la somme des en cours sur la région, et une autre portant la somme des facturés sur la région
Je suis donc parti de ma table A, puis jointure externe sur les tables B et C, group by(A.CODE) et sum(B.EN_COURS) et sum(C.FACT).
Ca donne ça
Ma première colonne me donne un résultat correct, mais la deuxième me donne un résultat muliplié par le nombre de lignes de la première partie de ma requête: problème typique de jointure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT A.CODE, SUM(B.EN_COURS), SUM(C.FACT) FROM A LEFT OUTER JOIN C ON A.CODE= C.CODE LEFT OUTER JOIN B ON A.CODE= B.CODE GROUP BY A.CODE
J'espère que vous pourrez me dépanner, car la je sèche.
Merci
Partager