Problème de prise de conditions SQL

Résolu/Fermé
julien37 - 4 juin 2009 à 17:26
 julien37 - 5 juin 2009 à 10:09
Bonjour à tous,

J'ai besoin de vos talents suite à un problème lié à une soustraction sur SQL qui ne prend pas en compte les conditions recquises. En effet la requete SQL est la suivante :

select IIII,CCCCCC,(select sum(Mappele) from Table_sql where Sens='D' and CCCCCC>=1000 and CCCCCC<=1999)-(select sum(Mappele) from ecrituresyndic e where Sens='C' and CCCCCC>=1000 and CCCCCC<=1999)
from Table_sql
where CCCCCC>=1000 and CCCCCC<=1999
GROUP BY IIII,CCCCCC;

Cette requête me donne le même résultat pour chaque IIII,CCCCCC, qui est la totalité de la totalité des D - la totalité des C.

J'aimerais que la soustraction soit également groupé par IIII et par CCCCCC sachant que si je met group by IIII,CCCCCC dans les parenthèse, ça me met "Subquery returns more than 1 row".

J'espère que j'ai été explicite???

Merci d'avance à tous car là je bloque....

2 réponses

dam75 Messages postés 1041 Date d'inscription lundi 4 mai 2009 Statut Webmaster Dernière intervention 21 février 2023 67
5 juin 2009 à 09:45
Bonjour,

Essaie un truc comme ca :
(j'ai décomposé en 3 champs pour la clarté)

Si tu n'es pas sous Mysql, il te faudra peut-etre adapter la syntaxe du IF ...

select IIII,CCCCCC,
SUM(IF(Table_sql.Send = 'D', Table_sql.Mappele, 0)) AS SumD
SUM(IF(ecrituresyndic.Send = 'C', ecrituresyndic.Mappele, 0)) AS SumC,
SumD - SumC AS TonResultat
FROM Table_sql
INNER JOIN ecrituresyndic ON (Table_sql.IIII = ecrituresyndic.IIII AND Table_sql.CCCCCC = ecrituresyndic.CCCCCC)
where Table_sql.CCCCCC>=1000 and Table_sql.CCCCCC<=1999
GROUP BY Table_sql.IIII,Table_sql.CCCCCC;

Je ne garantis pas le résultat direct (j'ai pas testé !) mais l'idée est là ...

Bon courage
1
Bonjour Dam 75,

Je te remercie beaucoup car la requete que tu m'as proposé était quasiment bonne, ce qui m'a permis d'arriver à mes fins.
Je n'aurais jamais trouvé sans toi, donc je te remercie encore une fois.

Bonne journée
0