2
我有一个递归CTE,用于打印出物料清单。这CTE正常工作,但我想添加的是所有项目的另一列显示顶级父。递归CTE抓取父迭代总数
这里是我目前的结果:
ITEM COMPONENT LEVEL
2326123679 216501 1
2326123679 80015008 1
216501 10006 2
216501 13004 2
216501 21010 2
我想从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
这是一个使用递归CTE的可能性?本质上我想输出:
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
@Matt没问题,很高兴它的工作 – Lamak