Re: [LA-discussions] requête mysql

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


jean-luc boutin wrote:
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


Si c'est le nom des colonnes qui t'embête, tu peux les nommer en donnant l'alias derrière l'expression qu'elles retournent :

SELECT Colonne1, SUM(Colonne2 IN ('NUL')) NUL, SUM(Colonne2 IN ('ASSEZ BON')) ASSEZ_BON, SUM(Colonne2 IN ('BON')) BON, SUM(Colonne2 IN ('TRES BON')) TRES_BON, SUM(Colonne2 IN ('EXCELLENT')) EXCELLENT FROM Table1 GROUP BY Colonne1 ORDER BY Colonne1;

Content d'avoir pu te dépanner ;-)

---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/