我有以下三个代表产品数据的表格。简而言之,产品“A”和“B”是最终产品。为了找出构成产品“A”的部件,我们查看“ProductComponents”表,该表给出了 ComponentListId = 1。
根据“PartsSubcomponents”表查询这个 ComponentListId 告诉我们它有两个子组件,即 A11 和 A12。
A11 很小,没有其他子组件。但是,A12 存在于“ProductComponents”表中,告诉我们它是由 X1 和 X2 制成的。
最终产品
EndProductId
A
B
...
产品组件
ProductId ComponentListId
A 1
A12 99
...
零件子组件
ComponentListId SubComponentId
1 A11
1 A12
99 X1
99 X2
...
我需要使用 CTE 来查找产品及其部件之间的层次结构级别。在这种情况下,结果应该是这样的:
EndProductId,ProductId,ComponentListId,SubcomponentId,Level
A, A, 1, A11, L1
A, A, 1, A12, L1
A, A12, 99, X1, L2
A, A12, 99, X2, L2