Bonjour,

voilà, je ne sais pas trop si c'est possible mais je souhaite faire une requête récursive qui contient elle-même une requête récursive et remonter des valeurs de la sous-requête dans la "sur"-requête.

Je vais essayer d'être clair :

J'ai une table Projwbs (wbs_id, parent_wbs_id, phase_id)

Je veux récupérer, sous un élément donné, la liste des éléments dont phase_id est non nul et leurs enfants. Je fais donc :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT pw.wbs_id, phase_id
FROM projwbs pw 
START WITH pw.wbs_id IN (SELECT wbs_id
                                     FROM admuser.projwbs
                                     WHERE phase_id IS NOT NULL 
                                     START WITH wbs_id = 244647
                                     CONNECT BY PRIOR wbs_id = parent_wbs_id )
CONNECT BY PRIOR pw.wbs_id = parent_wbs_id
j'obtiens donc par exemple :

WBS_ID PHASE_ID

244653 1169
244654 1169
244656 1169
244657 ----
244658 1169
244659 ----


Le hic c'est que je voudrais également obtenir la valeur phase_id pour les enfants. En gros, je voudrais que la valeur phase_id du parent soit propagée aux enfants (à la place des ----).

Voyez vous une manière de faire ?

J'ai tenté avec un bloc WITH contenant les parents de créer la requête pour les enfants, mais ça explose le temps d'exécution ....

Merci en tous cas d'avoir lu jusqu'ici ...