개발(MS-SQL)
CTE 재귀쿼리 역BOM
swkhan
2014. 5. 27. 15:50
WITH CTE(CD_ITEM, CD_MATL, LVL)
AS (
SELECT CD_ITEM, CD_MATL, 1 AS LVL
FROM PR_BOM
WHERE CD_MATL = 'ST630-0601' AND CD_COMPANY ='1000' --(앵커멤버)
UNION ALL
SELECT C.CD_ITEM, C.CD_MATL, LVL+1 AS LVL --(재귀멤버)
FROM PR_BOM C
INNER JOIN CTE D
ON C.CD_MATL = D.CD_ITEM -- 조인 조건
WHERE C.CD_COMPANY ='1000'
)
SELECT * FROM CTE