안녕하세요.
아래처럼 bom테이블을 만들었습니다.
bom정전개 쿼리를 작성중인데 bom리스트를 정렬순서대로 표현하고 싶은데
아래처럼하면 표현은 되는데 정렬순서를 표시된 정렬순서로는 잘 안되서요. ㅎ
확인한번 부탁드립니다.
감사합니다.
WITH RECURSIVEBOM AS(
SELECT 1 AS LVL
,A.품번
,A.품명
,A.정렬
,CAST(A.품번 AS VARCHAR(MAX)) AS DIR
FROM BOM테이블 A
WHERE A.품번 = '65503-59000' AND A.상위품번 = 'P'
UNION ALL
SELECT
R.LVL + 1 AS LVL
,B.품번
,B.품명
,B.정렬
,CAST(R.DIR + '>' + B.품번 AS VARCHAR(MAX)) AS DIR
FROM BOM테이블 B
INNER JOIN RECURSIVEBOM R ON B.상위품번 = R.품번
)
SELECT LVL
,품번
,품명
,정렬
,dir
FROM RECURSIVEBOM
ORDER BY LVL ASC
BOM테이블 |
|
|
P:최상위품번 |
|
|
BOM정전개 |
|
|
|
|
|
구분 |
품번 |
품명 |
상위품번 |
정렬 |
|
레벨 |
레벨 |
구분 |
품번 |
품명 |
정렬 |
제품 |
A |
완성제품1 |
P |
0 |
|
1 |
1 |
제품 |
A |
완성제품1 |
0 |
반제품 |
B-1 |
반제품 B-1 |
A |
1 |
|
----2 |
2 |
반제품 |
B-1 |
반제품 B-1 |
1 |
반제품 |
B-2 |
반제품 B-2 |
A |
2 |
|
------3 |
3 |
부자재 |
Z-4 |
부자재 Z-4 |
1 |
부자재 |
Z-1 |
부자재 Z-1 |
A |
3 |
|
------3 |
3 |
부자재 |
Z-5 |
부자재 Z-5 |
2 |
부자재 |
Z-2 |
부자재 Z-2 |
A |
4 |
|
----2 |
2 |
반제품 |
B-2 |
반제품 B-2 |
2 |
부자재 |
Z-3 |
부자재 Z-3 |
A |
5 |
|
------3 |
3 |
반제품 |
B-3 |
반제품 B-3 |
1 |
|
|
|
|
|
|
--------4 |
4 |
부자재 |
Z-8 |
부자재 Z-8 |
1 |
반제품 |
B-1 |
반제품 B-1 |
P |
0 |
|
--------4 |
4 |
부자재 |
Z-9 |
부자재 Z-9 |
2 |
부자재 |
Z-4 |
부자재 Z-4 |
B-1 |
1 |
|
------3 |
3 |
부자재 |
Z-7 |
부자재 Z-7 |
2 |
부자재 |
Z-5 |
부자재 Z-5 |
B-1 |
2 |
|
----2 |
2 |
부자재 |
Z-1 |
부자재 Z-1 |
3 |
|
|
|
|
|
|
----2 |
2 |
부자재 |
Z-2 |
부자재 Z-2 |
4 |
반제품 |
B-2 |
반제품 B-2 |
P |
0 |
|
----2 |
2 |
부자재 |
Z-3 |
부자재 Z-3 |
5 |
반제품 |
B-3 |
반제품 B-3 |
B-2 |
1 |
|
|
|
|
|
|
|
부자재 |
Z-7 |
부자재 Z-7 |
B-2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
반제품 |
B-3 |
반제품 B-3 |
P |
0 |
|
|
|
|
|
|
|
부자재 |
Z-8 |
부자재 Z-8 |
B-3 |
1 |
|
|
|
|
|
|
|
부자재 |
Z-9 |
부자재 Z-9 |
B-3 |
2 |
|
|
|
|
|
|
|
|