Bonjour,
via 3 tables (écriture, facture, règlement), je tente de faire une réconciliation entre mes écritures, ma facture et mes règlements.
Chaque écriture dispose d'un type (frais, vente...) et je souhaite, par facture, sortir le montants des écritures par type et le montant des règlements.
Les écritures appartiennent à une facture et les règlements également. La table centrale est donc facture.
Voici ma requête :
Le problème est que si j'ai une facture qui comporte plusieurs écritures, MontantRegle sera multiplié par le nombre de ces écritures !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT f.Numero , SUM(case when coalesce(typeE, 0) = 1 then (e.Montant) else 0 end) AS Somme1 , SUM(case when coalesce(typeE, 0) = 2 then (e.Montant) else 0 end) AS Somme2 , SUM(case when coalesce(typeE, 0) = 3 then (e.Montant) else 0 end) AS Somme3 , SUM(case when coalesce(typeE, 0) = 4 then (e.Montant) else 0 end) AS Somme4 , SUM(coalesce(r.Montant, 0)) AS MontantRegle FROM facture f LEFT JOIN ecriture e ON f.CleFacture = e.CleFacture LEFT JOIN reglement r ON f.CleFacture = r.CleFacture GROUP BY f.Numero
Ou me suis-je planté ?
Merci de votre aide !
Partager