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)
Version imprimable
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 :aie:.
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/
Pourquoi le : !
Ok la requête semble fonctionner avec les soldes :
MerciCode:
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:
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