et ne renvoie pas
2005-02-03 0
2005-02-05 0
dates qui contiennent des enregistrements (par exemple poisson)
Comment écrire la requete pour obtenir la liste de toutes les dates
existantes en incluant les dates avec 0 viande choisie ?
et ne renvoie pas 2005-02-03 0 2005-02-05 0 dates qui contiennent des enregistrements (par exemple poisson) Comment écrire la requete pour obtenir la liste de toutes les dates existantes en incluant les dates avec 0 viande choisie ?
SELECT date_repas,SUM(CASE WHEN plat_choisi='viande' THEN 1 ELSE 0 END) GROUP BY date_repas
ou
SELECT date_repas,COUNT(CASE WHEN plat_choisi='viande' THEN 1 ELSE NULL END) GROUP BY date_repas
devraient faire l'affaire (non testé).
Jacques. -- Oxado http://www.oxado.com/
Salut,
On Wed, 22 Feb 2006 22:59:20 +0100, Yves_Guyane <ypc49@wanadoo.fr> wrote:
"SELECT date_repas,COUNT(*) FROM client WHERE plat_choisi='viande' GROUP
BY date_repas"
renvoie (par exemple)
et ne renvoie pas
2005-02-03 0
2005-02-05 0
dates qui contiennent des enregistrements (par exemple poisson)
Comment écrire la requete pour obtenir la liste de toutes les dates
existantes en incluant les dates avec 0 viande choisie ?
SELECT date_repas,SUM(CASE WHEN plat_choisi='viande' THEN 1 ELSE 0 END)
GROUP BY date_repas
ou
SELECT date_repas,COUNT(CASE WHEN plat_choisi='viande' THEN 1 ELSE NULL
END) GROUP BY date_repas
et ne renvoie pas 2005-02-03 0 2005-02-05 0 dates qui contiennent des enregistrements (par exemple poisson) Comment écrire la requete pour obtenir la liste de toutes les dates existantes en incluant les dates avec 0 viande choisie ?
SELECT date_repas,SUM(CASE WHEN plat_choisi='viande' THEN 1 ELSE 0 END) GROUP BY date_repas
ou
SELECT date_repas,COUNT(CASE WHEN plat_choisi='viande' THEN 1 ELSE NULL END) GROUP BY date_repas
devraient faire l'affaire (non testé).
Jacques. -- Oxado http://www.oxado.com/
gg
Yves_Guyane a écrit :
Bonjour, ma requete : "SELECT date_repas,COUNT(*) FROM client WHERE plat_choisi='viande' GROUP BY date_repas" renvoie (par exemple)
et ne renvoie pas 2005-02-03 0 2005-02-05 0 dates qui contiennent des enregistrements (par exemple poisson) Comment écrire la requete pour obtenir la liste de toutes les dates existantes en incluant les dates avec 0 viande choisie ?
Merci
Avec MySQL, ce pourrait etre quelque chose du genre (tu n'as rien précisé)
select date_repas, sum(if(plat_choisi='viande',1,0)) from client group by date_repas
Cordialement,
gg
Yves_Guyane a écrit :
Bonjour,
ma requete :
"SELECT date_repas,COUNT(*) FROM client WHERE plat_choisi='viande' GROUP
BY date_repas"
renvoie (par exemple)
et ne renvoie pas
2005-02-03 0
2005-02-05 0
dates qui contiennent des enregistrements (par exemple poisson)
Comment écrire la requete pour obtenir la liste de toutes les dates
existantes en incluant les dates avec 0 viande choisie ?
Merci
Avec MySQL, ce pourrait etre quelque chose du genre (tu n'as rien précisé)
select
date_repas,
sum(if(plat_choisi='viande',1,0))
from
client
group by
date_repas
et ne renvoie pas 2005-02-03 0 2005-02-05 0 dates qui contiennent des enregistrements (par exemple poisson) Comment écrire la requete pour obtenir la liste de toutes les dates existantes en incluant les dates avec 0 viande choisie ?
Merci
Avec MySQL, ce pourrait etre quelque chose du genre (tu n'as rien précisé)
select date_repas, sum(if(plat_choisi='viande',1,0)) from client group by date_repas
Cordialement,
gg
Fred Brouard - SQLpro
Bonjour
CASE fait partie de la norme SQL. IF n'existe pas dans la norme SQL. Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/select/#L7
A +
Yves_Guyane a écrit:
Merci à tous les deux, le resultat est conforme à mon besoin et m'ouvre des perspectives très interessantes car je ne savais pas que MySQL autorisait les IF ou les CASE à l'intérieur d'un SUM ou COUNT. Question subsidiaire : depuis toujours (ie c'est du SQL standard) ou depuis des versions récentes ?
Yves
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Bonjour
CASE fait partie de la norme SQL. IF n'existe pas dans la norme SQL.
Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlaz/select/#L7
A +
Yves_Guyane a écrit:
Merci à tous les deux, le resultat est conforme à mon besoin et m'ouvre
des perspectives très interessantes car je ne savais pas que MySQL
autorisait les IF ou les CASE à l'intérieur d'un SUM ou COUNT.
Question subsidiaire : depuis toujours (ie c'est du SQL standard) ou
depuis des versions récentes ?
Yves
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
CASE fait partie de la norme SQL. IF n'existe pas dans la norme SQL. Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/select/#L7
A +
Yves_Guyane a écrit:
Merci à tous les deux, le resultat est conforme à mon besoin et m'ouvre des perspectives très interessantes car je ne savais pas que MySQL autorisait les IF ou les CASE à l'intérieur d'un SUM ou COUNT. Question subsidiaire : depuis toujours (ie c'est du SQL standard) ou depuis des versions récentes ?
Yves
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************