Bonjour j'ai crée une requête récursive qui me donne une arborescence de pièce avec leur composants
Je donne un exemple se sera plus parlant.
Tout d'abord ma requête récursive
Ce qui pose soucis n'est probablement pas la récursivité (mais je me trompe peut être) c'est le ORDER BY où je ne sais pas vraiment comment je dois ranger mon tableau. On va passer à l'exemple ce sera plus clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 WITH [Ttemp] (Part_No, Parent_No, Versioning, [level]) AS ( --On sélectionne la pièces incriminer SELECT Comp.Component_Part_No, Comp.Parent_Part_No, Comp.Component_Issue, 0 AS [level] FROM PARADEMODW.dbo.Components AS Comp WHERE LTRIM(RTRIM(Comp.Component_Part_No)) = @PartVar AND RTRIM(LTRIM(Comp.Component_Issue)) LIKE '%'+@IssueVar+'%' UNION ALL --On sélectionne ensuite les pièces lié à la pièces incriminer SELECT Comp.Component_Part_No, Comp.Parent_Part_No, Comp.Parent_Issue, [level] + 1 FROM PARADEMODW.dbo.Components AS Comp INNER JOIN Ttemp AS temp ON LTRIM(RTRIM(Comp.Parent_Part_No)) = LTRIM(RTRIM(Temp.Part_No)) WHERE RTRIM(LTRIM(Comp.Parent_Issue)) = LTRIM(RTRIM(Temp.Versioning)) ) --On affiche ensuite toutes les pièces sans les doublons SELECT DISTINCT * FROM Ttemp ORDER BY [level] ASC
Je cherche toutes les informations liées à la pièce X qui permet de fabriquer la pièce W. La pièce X est composée de la pièce XX et XY. La pièce XX est crée à partir de la pièce XXX , et la pièce XY et faite à partir de XYX et XYY, ce qui fait que si j'effectue une recherche sur la pièce X je me retrouve avec un tableaux de cette forme. (la colonne Issue est pas pertinente pour vous mais j'en ai besoin de mon coté)
Pièce "Fille" | Pièce "Mère" | Issue | Level
X | W | A00 | 0
XX | X | A00 | 1
XY | X | A00 | 1
XXX | XX | A00 | 2
XYX | XY | A00 | 2
XYY | XY | A00 |2
Mais je voudrais organiser mon tableaux par "bout" d'arborescence en clair comme ca
Pièce "Fille" | Pièce "Mère" | Issue | Level
X | W | A00 | 0
XX | X |A00 | 1
XXX| XX | A00 | 2
XY | X | A00 | 1
XYX | XY | A00 | 2
XYY | XY | A00 | 2
Si c'est pas clair n'hésitez pas à posez des questions mais je suis pas un très bon élève sur le site je garantie pas un réponse rapide
Merci a ceux qui on pris le temps de lire et/ou répondre
Gardez le feu brûlant dans votre cœur
Partager