Salut à tous,
J'ai une requête du genre (je l'ai simplifiée)
Le 2ème SUM est complétement faux. Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT NUMclient,SUM(montant), MTassurance, MtEncours, Sum(MTAssurance + MTEncours) FROM ECRITURE INNER JOIN CLIENT ON ECRITURE.NunClient=CLIENT.NumClient WHERE ECRITURE.Date='2008' GROUP BY ECRITURE.Date,ECRITURE.NumClient,CLIENT.MTAssurance, CLIENT.MTEncours ORDER By CLIENT.NumClient
MTAssurance = 1, et MTEncours=2 -->Sum(MTAssurance + MTEncours)me donne 20 ???!! je voudrais 3.
Je soupçonne que cela vienne de mon group By. J'ai essayé d'y retirer CLIENT.MTAssurance, CLIENT.MTEncours.Mais ds ce cas SQL échoue en disant :
"Serveur*: Msg 8120, Niveau 16, État 1, Ligne 18
La colonne 'CLIENT.CT_Assurance' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY." (idem puur CLIENT.Encours)
Je ne sais pas pourquoi il m'oblige à les mettre. Dans ts les tutoriaux que j'ai lu, je n'ai jamais lu que des group BY devenait obligatoire.
Dans ma table ECRITURES= le tiers apparait plusieurs fois donc je supposse qu'il me totalise par autant de lignes.
Auriez-vous une idée ?
Partager