Car vous avez un group by, et que cette colonne ne fait pas partie de la partie a aggréger.
Du coup toute colonne non présente dans le group by doit être utilisée avec une fonction d'agrégation (sum, max, min, etc)
Car vous avez un group by, et que cette colonne ne fait pas partie de la partie a aggréger.
Du coup toute colonne non présente dans le group by doit être utilisée avec une fonction d'agrégation (sum, max, min, etc)
Ok merci, j'ai encore appris un truc, auparavant je rajoutais la colonne dans la clause groupe by pour éviter les messages.
Je vais essayer de faire la requête comme tu me dis...
Un peu de lecture ca ne vous prendra que 10-15min !
http://sqlpro.developpez.com/cours/sqlaz/ensembles/
Ok la requête semble fonctionner avec les soldes :
Merci
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 SELECT O.nego_id, O.nom_nego ,SUM(objectif) AS 'somme_objectifs_nego' ,ROUND( MAX(S.solde) +(SUM(COALESCE(T1.tra_honoraires1, 0)) + SUM(COALESCE(T2.tra_honoraires2, 0)) + SUM(COALESCE(T3.tra_honoraires3, 0)) + SUM(COALESCE(T4.tra_honoraires4, 0)) ), 2) AS 'somme_honoraires_nego' FROM Objectifs O LEFT JOIN Transactions T1 ON O.nego_id = T1.tra_nego_honoraires1 LEFT JOIN Transactions T2 ON O.nego_id = T2.tra_nego_honoraires2 LEFT JOIN Transactions T3 ON O.nego_id = T3.tra_nego_honoraires3 LEFT JOIN Transactions T4 ON O.nego_id = T4.tra_nego_honoraires4 LEFT JOIN Soldes S ON O.nego_id = S.nego_id WHERE O.agence_id = 1 GROUP BY O.nego_id, O.nom_nego
Up : Néanmoins je n'obtiens pas le bon résultat avec la requête par agence :
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 SELECT O.agence_id ,SUM(objectif) AS 'somme_objectifs_agence' ,ROUND( MAX(S.solde) +(SUM(COALESCE(T1.tra_honoraires1, 0)) + SUM(COALESCE(T2.tra_honoraires2, 0)) + SUM(COALESCE(T3.tra_honoraires3, 0)) + SUM(COALESCE(T4.tra_honoraires4, 0)) ), 2) AS 'somme_honoraires_agence' FROM Objectifs O LEFT JOIN Transactions T1 ON O.nego_id = T1.tra_nego_honoraires1 LEFT JOIN Transactions T2 ON O.nego_id = T2.tra_nego_honoraires2 LEFT JOIN Transactions T3 ON O.nego_id = T3.tra_nego_honoraires3 LEFT JOIN Transactions T4 ON O.nego_id = T4.tra_nego_honoraires4 LEFT JOIN Soldes S ON O.nego_id = S.nego_id --WHERE O.agence_id = 1 GROUP BY O.agence_id
Partager