商品データを表す次の3つのテーブルがあります。簡単に説明すると、製品「A」および「B」は最終製品である。製品 "A"を作る部品を見つけるために、 "ProductComponents"テーブルを見て、ComponentListId = 1を与えます。CTE製品階層ツリーの作成
このPartsListIdに "PartsSubcomponents"テーブルを照会すると、2つのサブコンポーネントie A11およびA12。
A11はそれだけ小さく、それ以上のサブコンポーネントはありません。ただし、A12は「ProductComponents」テーブルに存在し、X1とX2で作成されていることがわかります。
最終生成物
EndProductId
A
B
...
ProductComponents
ProductId ComponentListId
A 1
A12 99
...
PartsSubcomponents
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
私はコンソールアプリケーションを作成しましたが、それはすぐに本当に汚れていました。 CTEのインターネットの例を私の問題に実際にマップすることはできませんでしたが、私はそれがそれを行う最良の方法であると考えています。 – Syed