Cannot use an aggregate function in a GROUP BY clause
Bonjour.
Firebird 2.0 -
Soit deux tables
Citation:
Envoyé par TABLE1
ID NOM
01 MOI
02 TOI,
Citation:
Envoyé par TABLE2
IND ID RANG MONTANT
1 01 100 10
2 01 100 5
3 01 101 6
4 02 100 7
5 02 101 6
6 02 101 6
7 01 102 25
Le champs de "RANG" varie de 100 à ..., mais je ne veux analyser que trois valeurs (100, 101 et 102).
Je souhaite avoir une table résultat en additionnant les valeurs de MONTANT selon l'ID et le RANG, avec en résultat :
Citation:
ID NOM RANG100 RANG101 RANG102
01 MOI 15 6 25
02 TOI 7 12
J'ai fait la reqête suivante :
Code:
1 2 3 4 5 6
| Select T1.ID, T1.NOM
case when RANG = 100 then sum(MONTANT) else 0 end RANG100,
case when RANG = 101 then sum(MONTANT) else 0 end RANG101,
case when RANG = 102 then sum(MONTANT) else 0 end RANG102
from TABLE1 T1 left outer join TABLE2 T2 on T1.ID=T2.ID
group by T1.ID, T1.NOM, RANG100, RANG101, RANG102 |
Je pense que vous avez pigé le but de la requête. Malheureusement, j'obtiens systématiquement "Cannot use an aggregate function in a GROUP BY clause".
Je sèche sur la façon de résoudre ça correctement.
Comment vous y prendriez-vous ?
Merci
Michel