Bonjour?
je dois afficher dans une vue dans les logiciels API Bâtiment Sage PE , Batigest Evolution, pour chaque chantier, le devis associé, le montant HT des bons de réception associés et le nombre d'heures des suivis de MO saisis associés.
j'ai donc 4 tables avec les relations suivantes:
pour chaque chantier, j'ai un devis, plusieurs bons de réception et plusieurs lignes de suivi de MO saisies.
Je voudrais faire apparaitre sur une ligne à l'écran, pour chaque chantier, le devis associé, la somme des MT HT des bons de réception et la somme du nombre d'heures saisies ainsi que leur valeur.
J'ai fait la requête ci-dessous. Mais mon problème se trouve sur les zones SUM de bon de réception et Suivi de MO.
Si par exemple j'ai un bon de réception mais 4 lignes de Suivi de MO dans les tables d'origine, la requête cumule 4 fois le MT HT de la seule ligne de Bon de réception.
Je dois trouver un moyen de cumuler les valeurs de chacune des tables bon de réception et Suivi de MO séparément et afficher le résultat ensuite par chantier.
Voir ci-après la requête SQL.
En vous remerciant d'avance de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT Devis.CodeRepre, ChantierDef.Code, ClientDef.Nom, ChantierDef.DateDebut, ChantierDef.DateFin, ChantierDef.CodeClient, Devis.Code, Devis.PvMO, Devis.TempsMO, Devis.DebF, Devis.DebDiv, Devis.TotalHT, Sum(BonReception.TotalHT) AS TotalAchats, Sum(SuiviMO.NbH0) AS NbreHeures, Sum(SuiviMO.Val0) AS MontantHeures FROM (((([ChantierDef] LEFT JOIN [BonReception] ON BonReception.CodeChantier=ChantierDef.Code ) INNER JOIN [SuiviMO] ON SuiviMO.CodeChantier=ChantierDef.Code) LEFT JOIN [CLIENTDEF] ON ClientDef.Code=ChantierDef.CodeClient) INNER JOIN [Devis] ON Devis.CodeChantier=ChantierDef.Code ) GROUP BY Devis.CodeRepre, ChantierDef.Code, ClientDef.Nom, ChantierDef.DateDebut, ChantierDef.DateFin, ChantierDef.CodeClient, Devis.Code, Devis.PvMO, Devis.TempsMO, Devis.DebF, Devis.DebDiv, Devis.TotalHT
Partager