Menu

Deux requêtes en une

- - Dernière réponse : yg_be
Messages postés
7018
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
11 décembre 2018
- 28 nov. 2018 à 22:06
Bonjour,
Je souhaiterai établir sous une même requête les deux requêtes suivantes :

SELECT `FAMILLE`, SUM(`COUT`) AS `montantEntreeParFamille`, SUM(`QTT`) AS `nbrEntreeParFamille` FROM `mouvement` WHERE `MOUVEMENT` LIKE "%E%" AND (DATE_MOUVEMENT BETWEEN "2018-01-01" AND "2018-11-27") GROUP BY `FAMILLE`

SELECT `FAMILLE`, SUM(`COUT`) AS `montantSortieParFamille`, SUM(`QTT`) AS `nbrSortieParFamille` FROM `mouvement` WHERE `MOUVEMENT` LIKE "%S%" AND (DATE_MOUVEMENT BETWEEN "2018-01-01" AND "2018-11-27") GROUP BY `FAMILLE`


J'ai trouvé une solution :


SELECT `FAMILLE`
SUM(CASE WHEN `MOUVEMENT` LIKE "%E%" THEN `COUT` ELSE 0 END) AS `montantEntreeParFamille`,
SUM(CASE WHEN `MOUVEMENT` LIKE '%E%' THEN `QTT` ELSE 0 END) AS `nbrEntreeParFamille`,
SUM(CASE WHEN `MOUVEMENT` LIKE '%S%' THEN `COUT` ELSE 0 END) AS `montantSortieParFamille`,
SUM(CASE WHEN `MOUVEMENT` LIKE '%S%' THEN `QTT` ELSE 0 END) AS `nbrSortieParFamille`

FROM `MOUVEMENT`

WHERE (`MOUVEMENT` LIKE '%E%'
OR `MOUVEMENT` LIKE '%S%')
AND (`DATE_MOUVEMENT` BETWEEN '2018-01-01' AND '2018-11-27')

GROUP BY `FAMILLE`


Seulement j'ai une erreur :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sum(case when `mouvement` like '%E%' then `COUT` else 0 end) as `montantEntreePa' at line 2

Configuration: Windows / Chrome 70.0.3538.110
Afficher la suite 

Votre réponse

1 réponse

Messages postés
7018
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
11 décembre 2018
0
Merci
bonjour, qu'as-tu consulté comme documentation? as-tu essayé
CASE MOUVEMENT WHEN  LIKE "%E%" THEN `COUT` ELSE 0 END
?
Commenter la réponse de yg_be