Bonjour à tous,

Je dois mettre en place une requête récursive sur Oracle 12 mais je n'arrive pas au résultat souhaité...
D'ailleurs j'obtiens des résultats assez incohérents avec les données.

Voici ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
	select
      distinct 
      level, DP.ENCADRANT_POSTE_ID, DP.POSTE_ID
     from
     DWH.DP
    where to_date('01/01/2021', 'dd/mm/yyyy') between DP.DATE_DEBUT and DP.DATE_FIN
         start with DP.ENCADRANT_POSTE_ID  = 11010
         CONNECT BY  nocycle PRIOR         DP.POSTE_ID = DP.ENCADRANT_POSTE_ID
         order by 1 desc;
Comme vous l'aurez compris avec la requête, ma table comporte des POSTE_ID avec des ENCADRANT_POSTE_ID (donc le niveau n+1).
Ces postes pouvant évoluer chaque mois, j'ai rajouté la condition sur la date pour n'avoir qu'une ligne pour chaque poste.


Avec le test ci-dessus du poste 11010, j'obtiens des résultats incohérent avec des doublons et des doublons par niveau sans raison que je ne comprenne (si j'enlève Level j'ai du coup plus de doublon ,mais plus de possibilité de m'y retrouver dans les données...).
Par exemple dans mes résultats:

LEVEL DP.ENCADRANT_POSTE_ID DP.POSTE_ID
10 62 105
9 62 105
8 62 105
7 62 105

Alors que quand je remonte manuellement requête par requête le poste 105 voici ce que j'obtiens:
105 --> 62 --> 308 --> 1499 --> 1536 --> 1121

Donc il ne fait pas partie directement de ENCADRANT_POSTE_ID = 11010 dont je pensais être partie...

Pouvez-vous m'aider svp ?

Merci !!!