bonjour j'ai besoin d'aide pour résoudre mon problème

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
SELECT     dbo.nature_engagement.nature_engagement, dbo.etat_engagement.n_nature_engagement, dbo.etat_engagement.montant_engager, 
SUM(CASE WHEN DATALENGTH(COALESCE(dbo.modification_engager.n_certification2, '')) = 0 THEN 0 ELSE ISNULL(dbo.modification_engager.montant, 0) END) AS modification_engager, 
SUM(dbo.etat_mandatement.montant_mandater) AS total_mandater
FROM   dbo.etat_budget INNER JOIN dbo.etat_engagement ON dbo.etat_budget.id1 = dbo.etat_engagement.id1 INNER JOIN dbo.nature_engagement ON dbo.etat_engagement.id_nature_engagement = dbo.nature_engagement.id_nature_engagement INNER JOIN
 dbo.rubrique_budgetaire ON dbo.etat_budget.id_rubrique = dbo.rubrique_budgetaire.id_rubrique LEFT OUTER JOIN
dbo.etat_mandatement ON dbo.etat_engagement.id2 = dbo.etat_mandatement.id2 LEFT OUTER JOIN
dbo.modification_engager ON dbo.etat_engagement.id2 = dbo.modification_engager.id2
GROUP BY dbo.nature_engagement.nature_engagement, dbo.etat_engagement.n_nature_engagement, dbo.etat_engagement.montant_engager
le problème réside dans le champs modification_engager la somme renvoiyé par se dernier se fais multiplié par le nombre d'enregistrement dans la table etat_mandatement relatif a celui la
je sais pas comment le grouper