Inverser le sens d'une requête SQL..
Bonjour :)
Je possède une table T1 comme ceci :
Nombre(Number(5))
Chaîne(Varchar2(40))
Le champ 'nombre' contient des valeurs numériques, de 0 à 86000 environ (il y en a environ 35000 différents en tout).
J'ai actuellement une requête croisée, me retournant le total des champs possédant un nombre et une chaîne donnée, soit environ ceci :
Code:
1 2 3 4 5 6
|
Chaîne 0 1 ... 20 30 .... 90000 100000 ...
chaîne1 12 43 546 76 7878 785
chaîne2 2 345 757 67 876 67
chaîne3 437 3 43 76 879 908 |
J'ai donc un regroupement par chaîne, et quelques enregistrements du champ "Nombre". En effet, je n'ai pas 1 colonne par valeur, mais un regroupement! Je m'explique :
je compte de cette façon :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
SELECT chaîne,
count(CASE WHEN Nombre=0 THEN 1 END)AS M_0,
count(CASE WHEN Nombre=1 THEN 1 END)AS M_1,
...
count(CASE WHEN Nombre>=100 AND Nombre<200 THEN 1 END)AS M_100_200,
...
count(CASE WHEN Nombre>=90000 AND Nombre<100000 THEN 1 END)AS M_90000_100000,
...
FROM T1
GROUP BY chaîne ORDER BY chaîne; |
Le soucis c'est que je souhaite obtenir l'inverse! Soit les chaînes en entête de colonne, et les valeurs de "Nombre" (regroupés comme je vous l'ai montré) en entête de ligne...
Pour les chaînes en entête ce n'est pas un problème, j'ai le moyen de les récupérer toutes (donc je peux faire un "CASE(WHEN chaine="chaine1" THEN 1 END)" etc..), mais comment faire pour le regroupement du champ "nombre" ? (si je met "GROUP BY nombre", j'ai bien évidemment les 35000 lignes qui s'affichent...)!
Une idée ?... :?
Merci beaucoup :)