Om du önskar till travers en bordlägga - gilla en räkning av material bordlägger, då du kan använda en recursive start för CTE-typquery på @parent och därefter gå den färdiga räkningen tillbaka.
Det låter a bet något liknande vad du är pröva att göra?
Vid långt av exemplet, using en vikarie bordlägga i stället (precis för exemplet - du använder ditt verkligt bordlägger känt),
skapa bordlägger #table (parentid int, inventoryID int, varchar inventory_name (100))
det #table mellanlägget värderar (1.0, ”Parent1”)
det #table mellanlägget värderar (1.2, ”Parent1Child2”)
det #table mellanlägget värderar (2.3, ”Parent2Child3”)
det #table mellanlägget värderar (3.0, ”Parent3”)
-- nu vi har några sampeldata, den recursive queryen för CTE
; med BOM_CTE som
(VALDA InventoryID, ParentID, inventory_name
FRÅN #Table
VAR ParentID = 1
all union
VÄLJ T.InventoryID, T.ParentID, T.inventory_name
FRÅN #Table T
INRE SAMMANFOGA BOM_CTE C på T.ParentID = C.InventoryID
)
välj parentid, inventoryid som child_id, inventory_name från BOM_CTE