Bonjour à tous,

Base Oracle utilisée : 9iR2.
Je dois écrire une procédure assez compliquée et afin d'optimiser les performances au maximum, j'essaie de minimiser mon nombre de curseurs imbriqués et d'optimiser au maximum mon code SQL pour éviter au maximum les intéractions entre le moteur SQL et le moteur PL/SQL. (Ai je déjà raison sur ce point là ?)

J'ai réussi à tenir cet objectif sur la plupart du code mais il me reste un problème sur une partie de requête.

Voici la forme de ma table principale :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
NIVEAU        SEQUENCE                TACHE         CODE_FACT
1                1                    tacheA        inconnu
2                2                    tacheB 
3                3                    tacheC 
1                4                    tache2        TITI
2                5                    tache5 
3                6                    tache7        XZYY
4                7                    tacheZ 
5                8                    tacheW
1                9                    tache6        TOTO
2                10                   tache9        XXXX
Et voici ce que je recherche à faire :
Donner toujours les taches elementaires (soit de dernier niveau pour une branche) avec le dernier code_fact de la branche c'est à dire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
NIVEAU        SEQUENCE                  TACHE        CODE_FACT
3                3                      tacheC       inconnu
5                8                      tacheW       XZYY
2               10                      tache9       XXXX
J'ai essayé tout ce que j'avais en magasin et en particulier les fonctions analytiques mais là je commence à sécher et je me dis que je vais passer par du PL.

Auriez vous des idées ?

Merci d'avance.