bonjour a tous,

Pour construire un menu de navigation hierarchique, j'ai besoin de construire une liste présentant le nombre de sous niveaux de chaque noeud.

Ma base type (sous oracle 8)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
ID ----- PARENT ---- LABEL
1   ----- 0          ---- TOP
2   ----- 1          ---- Menu1
3   ----- 1          ---- Menu2
4   ----- 3          ---- Menu 2.1
5   ----- 3          ---- Menu 2.2
4   ----- 1          ---- Menu 3
je fais alors cette requete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select count(distinct id) from menus where parent in 
( select id from menus where parent_id = 1 ) 
group by parent
Résultat : 2
Sauf que je souhaiterais qu'on me renvoie 0,2,0.

Par contre quand je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select count(distinct id) from menus where parent in 4
La ca me renvoie bien 0

Merci a tous ceux qui pourront m'aider sur ce sujet sur lequel je tourne en rond, j'aimerais eviter de faire cela par programmation, en faisant tourner plusieurs requetes séparées.

Lionel