KewlCat a écrit :
Rebonsoir !
En fouillant dans la doc MySQL j'ai trouvé une utilisation détournée
de la clause IN qui va bien nous servir :-)
En effet, MySQL fait en sorte que la clause IN retourne 0 ou 1 en
fonction de la présence d'une valeur dans la liste fournie.
Atttention, détournement :
SELECT Colonne1, SUM(Colonne2 IN ('NUL')), SUM(Colonne2 IN ('ASSEZ
BON')), SUM(Colonne2 IN ('BON')), SUM(Colonne2 IN ('TRES BON')),
SUM(Colonne2 IN ('EXCELLENT')) FROM Table1 GROUP BY Colonne1 ORDER BY
Colonne1;
Je viens de tester et ça marche avec comme nom de colonne SUM(Colonne2
IN ('ASSEZ BON')) SUM(Colonne2 IN ('BON')) etc.... et des 0 quand il
n'y a pas un type
d'evaluation correspondant à un titre. C'est ce que je voulais en une
seule requête.
Merci mille fois.
Et voilà ! Pas besoin de tableau de valeurs intermédiaire, la requête
porte tous les résultats (sauf les valeurs de Colonne2, mais pour
cette fois j'ai supposé qu'elles étaient connues et utilisables "en
dur"). Dans le cas où les valeurs de Colonne2 ne sont pas connues à
l'avance, il faudra faire une première requête à la recherche de
DISTINCT Colonne2 puis générer la requête ci-dessus pour ensuite
afficher les entêtes de tableau dans l'ordre dans lequel ils auront
été récupérés par la seconde requête.
=^.^=
---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion
---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion