2
私は部品表をプリントアウトするために作成した再帰的なCTEを持っています。このCTEはその目的のためにうまくいきますが、私が追加したいのは、すべてのアイテムがトップレベルの親を示す別の列です。ここで再帰的なCTE取得全部の反復からの親
は私の現在の結果は以下のとおりです。
ITEM COMPONENT LEVEL
2326123679 216501 1
2326123679 80015008 1
216501 10006 2
216501 13004 2
216501 21010 2
私はCTEから出力したいのですがどのようなものです:これは再帰CTEを使用する可能性
PARENT ITEM COMPONENT LEVEL
2326123679 2326123679 216501 1
2326123679 2326123679 80015008 1
2326123679 216501 10006 2
2326123679 216501 13004 2
2326123679 216501 21010 2
ですか?基本的に私は出力したい:
MAX(ITEM)
それぞれの完全な繰り返しで。
CTE:
WITH ReturnBOM ([Item], [Item Name], [Component], Level)
AS
(
SELECT
FinishedLevel.PMPRNO AS [Item],
MasterItem.MMITDS AS [Item Name],
FinishedLevel.PMMTNO AS [Component],
1 AS Level
FROM M3FDBPRD.MVXJDTA.MPDMAT FinishedLevel
JOIN M3FDBPRD.MVXJDTA.MITMAS MasterItem
ON FinishedLevel.PMPRNO = MasterItem.MMITNO
WHERE MasterItem.MMITTY = 'Z10'
UNION ALL
SELECT
FinishedLevel.PMPRNO AS [Item],
MasterItem.MMITDS AS [Item Name],
FinishedLevel.PMMTNO AS [Component],
Level + 1
FROM M3FDBPRD.MVXJDTA.MPDMAT FinishedLevel
INNER JOIN ReturnBOM ItemRecursion
ON ItemRecursion.[Component] = FinishedLevel.PMPRNO
JOIN M3FDBPRD.MVXJDTA.MITMAS MasterItem
ON FinishedLevel.PMPRNO = MasterItem.MMITNO
)
SELECT
ReturnBOM.Item,
ReturnBOM.[Item Name],
ReturnBOM.Component,
ReturnBOM.Level
FROM ReturnBOM
!すごくシンプルなので、私はそれを考えることができませんでした。新しい親をアンカーピースに配置しようとしましたが、下部が一致する必要があります。ありがとう! – Matt
@マット問題なし、うれしい – Lamak