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:
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).
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;
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 !!!
Partager