le 05/03/2013 à 16:27
select imbriqués
Bon désolé de te l'annoncer brutalement, mais ton SQL est tout "pas bien"
1 - Ton GROUP BY n'est pas complet, il faut prendre tous les champs du SELECT sauf le Sum.
2 - Le DISTINCT, c'est pas utile.
3 - les Filtres dans le INNER JOIN, c'est a bannir. Surtout que tu en remets dans le WHERE.
4 - Tu as bien fait de mettre des alias de table, mais utilises les partout.
5 - Dans ton SELECT tu n'utilises pas les champs de "structure" (hors mis la clé de jointure)
je te propose plutôt ça :
SELECT m.DGAA
, s.lib_dga
, Sum(NB_TOT) as NB_TOT
FROM m41000 as m
INNER JOIN structure as s
ON m.DGAA = s.dga
WHERE m.CCIBLE = 0
and m.DRR = '41270'
and m.LIBELLE_ACTION In( 'action1' , 'CREDIT BAIL A ECHEANCE ' )
GROUP
BY m.DGAA
, s.lib_dga
1 - Ton GROUP BY n'est pas complet, il faut prendre tous les champs du SELECT sauf le Sum.
2 - Le DISTINCT, c'est pas utile.
3 - les Filtres dans le INNER JOIN, c'est a bannir. Surtout que tu en remets dans le WHERE.
4 - Tu as bien fait de mettre des alias de table, mais utilises les partout.
5 - Dans ton SELECT tu n'utilises pas les champs de "structure" (hors mis la clé de jointure)
je te propose plutôt ça :
SELECT m.DGAA
, s.lib_dga
, Sum(NB_TOT) as NB_TOT
FROM m41000 as m
INNER JOIN structure as s
ON m.DGAA = s.dga
WHERE m.CCIBLE = 0
and m.DRR = '41270'
and m.LIBELLE_ACTION In( 'action1' , 'CREDIT BAIL A ECHEANCE ' )
GROUP
BY m.DGAA
, s.lib_dga