J'espère que je suis en mesure d'expliquer le problème qui me laisse perplexe. J'ai l'ensemble de données hiérarchique suivante (ce qui est juste sous-ensemble de 34K dossiers)Hierarchical Query
PARENT_ID CHILD_ID EXAM
TUDA12802 TUDA12982 N
TUDA12982 TUDA12984 J
TUDA12984 TUDA999 J
TUDA12982 TUDA12983 N
TUDA12983 TUDA15322 J
TUDA12983 TUDA15323 J
Ceci est une représentation de l'arbre
TUDA12982 N
- TUDA12984 J
-- TUDA999 J
- TUDA12983 N
-- TUDA15322 J
-- TUDA15323 J
Ce que je besoin est une liste de tous les dossiers avec examen = N et l'examen sous-jacent = 'J' enregistrements, qui peuvent être imbriqués.
select *
from test1
connect by prior child_id = parent_id
start with child_id = 'TUDA12982'
order siblings by child_id;
Ça me donne
PARENT_ID CHILD_ID EXAM
TUDA12802 TUDA12982 N
TUDA12982 TUDA12984 J
TUDA12984 TUDA999 J
TUDA12982 TUDA12983 N
TUDA12983 TUDA15323 J
TUDA12983 TUDA15322 J
Mais ce que je dois est
TUDA12802 TUDA12982 N
TUDA12982 TUDA12984 J
TUDA12984 TUDA999 J
Le déplacement doit arrêter quand je rencontre un EXAMENS = enregistrement 'N'.
J'ai besoin de quelque chose comme une clause 'stop with'.
select *
from test1
connect by prior child_id = parent_id
start with child_id = 'TUDA12982'
stop with exam = 'N'
order siblings by child_id;
Comment cela peut-il être fait?
C'est tout. Tellement simple et élégant. Je pensais avoir rencontré un problème vraiment difficile. Merci beaucoup. Je ne sais pas ce que je veux dire. (Johan Cruijff) –