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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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