bonjour,

je dois mettre en place un menu hierarchique, je me suis donc penche sur la redaction de la requete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
select    LEVEL
		, dnod_id
		, lpad(' ',4*level-4)||dnod.title
        , dnod_id_parent 
		, document_position
  from   pns_document_relations
  join pns_document_nodes dnod on dnod_id = dnod.id 
  start with dnod_id_parent = 0
  connect by prior dnod_id =  dnod_id_parent
  ORDER SIBLINGS BY  document_position
cette requete fonctionne bien puisqu'elle m'affiche les elements comme je le souhaite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
LEVEL DNOD_ID LPAD('',4*LEVEL-4)||DNOD.TITLE                               
---------- ------- -------------------------------------------------------------
         1       1 DOC A                                             
         2      13     sousDocA                                          
         3     107         test4                                                
         3     105         test5                                                
         3     106         test6
seulement voila, je dois faire en sorte que dans mon menu certains elements se repetent a differents endroits, et c la que je coince a moitie parce que la requete ci dessus me renvoie bien les elements plusieurs fois mais seulement, elle me renvoie a chaque fois egalement les elements enfant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
LEVEL DNOD_ID LPAD('',4*LEVEL-4)||DNOD.TITLE                               
---------- ------- -------------------------------------------------------------
         1       1 DOC A                                             
         2      13     sousDocA                                          
         3     107         test4                                                
         3     105         test5                                                
         3     106         test6 
         2      14     sousDocB                                          
         3     117         test1                                                
         3     115         test2                                                
         3     116         test3 
 
et plus loin dans le menu : 
 
         1       25       DOC B                                             
         2      13          sousDocA                                          
         3     107               test4                                                
         3     105               test5                                                
         3     106               test6 
         2      14         sousDocB
         3     117              test1                                                
         3     115              test2                                                
         3     116              test3 
etc...
comment pourrais je faire avec la requete que j'ai pour une lorsque les donnees sont reaffichees une deuxieme ou une troisieme fois il n'y ai que les "sousDoc" qui soient affiches? dois je faire plusieurs requete ou est ce que je peux faire tout cela avec une seule?

voici ma table relations :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
CREATE TABLE PNS_DOCUMENT_RELATIONS
(
  DNOD_ID            NUMBER,
  DNOD_ID_PARENT     NUMBER,
  DOCUMENT_POSITION  VARCHAR2(2 BYTE),
)
 
Dnod_id | dnod_id_parent | Doc_position
---------------------------------------
---------------------------------------
13        |           1       |      1
---------------------------------------
13        |           25      |      1 
---------------------------------------
14        |           1     |     2
---------------------------------------
14        |          25     |     2 
--------------------------------------
test1     |       13  |      1
---------------------------------------
test2   |        13  |       2
---------------------------------------
test3   |        13   |       3
---------------------------------------
test4   |         14  |        1
---------------------------------------
j'espere ne pas avoir ete trop confus dans mes explications.

merci d'avance pour votre aide