Problème de prise de conditions SQL
Résolu
julien37
-
julien37 -
julien37 -
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....
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....
A voir également:
- Problème de prise de conditions SQL
- Problème prise jack manette ps5 - Forum Jeux vidéo
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. - Forum Réseaux sociaux
- Prise ethernet murale ne fonctionne pas ✓ - Forum câblage
- En préparant son diaporama, tom a pris quelques notes qui l'aideront lors de sa présentation. quand il présentera l'âne, il a prévu de raconter une anecdote sur cet animal. comment s'appelle l'âne de son histoire ? - Forum Windows
- Pas de prise ethernet sur tv - Forum câblage
2 réponses
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
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