Bonjour.
J'ai lu avec très grand intérêt l'article de F. Brouard sur les requêtes récursives.
http://sqlpro.developpez.com/cours/s...te-recursives/
J'ai fait une requête récursive qui me renvoie la liste d'éléments père-fils qui se trouvent dans une table TRACABILITE.
Voici la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 WITH tree (data, nom_pere, nom_fils) AS (SELECT volume_assemble, nom_lot_pere, Nom_lot_fils FROM TRACABILITE WHERE Nom_lot_fils=6464 UNION ALL SELECT volume_assemble, nom_lot_pere , Nom_lot_fils FROM TRACABILITE V INNER JOIN tree t ON t.nom_pere = V.Nom_lot_fils) SELECT * FROM tree order by nom_fils desc OPTION (MAXRECURSION 32000);
Dans la section IV-B.1, il semble expliquer comment éviter de traiter plusieurs fois les couples père-fils identiques. Je ne comprends pas cette partie... Du coup quand j'exécute ma requête, je me retrouve avec des branches de ma traçabilité qui s'affichent plusieurs fois. Cela est du à la nature de mes données, et c'est normal. Dans l'ancien code que j'utilisais, je ne traitais pas un couple père-fils que j'avais déjà traité.
Savez-vous comment je dois ajouter la clause WHERE dans la requête pour qu'il ne traite pas plusieurs fois un même couple père-fils?
Suis-je clair?
Merci
Partager