안녕하세요. 쿼리를 작성하다 아무리 해도 되지않는 쿼리가 있어서 고수님들의 조언을 구해봅니다. 부탁드리겠습니다.
기초 테이블 데이터는 다음과 같이 많은 데이터가 있습니다.
p_cd cd nm
1000 1000000 수입
1100 1100000 사업수입
1101 1101000 회비수입
1101 1101001 회비수입
1101 1101105 특별회비
1103 1103000 임대사업수입
1103 1103001 사무실임대료수입
1103 1103002 영업장임대료수입
1104 1104000 사용료수입
1104 1104001 주차장사용료수입
1104 1104002 회의실사용료수입
1104 1104003 기타사용료수입
2000 2000000 비용
2100 2100000 사업비용
2101 2101000 일반사업비
2101 2101001 상공진흥비
2101 2101002 경제조사비
2101 2101003 유통조사비
2101 2101004 국제협력비
2101 2101005 홍보비
2103 2103000 수익사업사업비
2103 2103001 매출원가
2103 2103002 재산관리비
5000 5000000 자산
5100 5100000 유동자산
5101 5101000 당좌자산
5101 5101001 현금
5101 5101002 당좌예금
5101 5101003 보통예금
위의 기초 데이터를 기준으로 다른테이블과 조인하여 데이터를 가지고 와야하는데 기초데이터를 트리구조로 가지고 와야 하는데 잘 안되네요
아래와 같이 나와야 합니다.
p_cd cd lv nm
1000 1000000 0 수입
1100 1100000 1 ├사업수입
1101 1101000 2 ├─회비수입
1101 1101001 3 ├──회비수입
1101 1101105 3 ├──특별회비
1103 1103000 2 ├─임대사업수입
1103 1103001 3 ├──사무실임대료수입
1103 1103002 3 ├──영업장임대료수입
1104 1104000 2 ├─사용료수입
1104 1104001 3 ├──주차장사용료수입
1104 1104002 3 ├──회의실사용료수입
1104 1104003 3 └──기타사용료수입
2000 2000000 0 비용
2100 2100000 1 ├사업비용
2101 2101000 2 ├─일반사업비
2101 2101001 3 ├──상공진흥비
2101 2101002 3 ├──경제조사비
2101 2101003 3 ├──유통조사비
2101 2101004 3 ├──국제협력비
2101 2101005 3 ├──홍보비
2103 2103000 2 ├─수익사업사업비
2103 2103001 3 ├──매출원가
2103 2103002 3 └──재산관리비
5000 5000000 0 자산
5100 5100000 1 ├유동자산
5101 5101000 2 ├─당좌자산
5101 5101001 3 ├──현금
5101 5101002 3 ├──당좌예금
5101 5101003 3 └──보통예금
WITH T(P_CD, CD, NM) AS (
SELECT '1000', '1000000', '수입' FROM DUAL UNION ALL
SELECT '1100', '1100000', '사업수입' FROM DUAL UNION ALL
SELECT '1101', '1101000', '회비수입' FROM DUAL UNION ALL
SELECT '1101', '1101001', '회비수입' FROM DUAL UNION ALL
SELECT '1101', '1101105', '특별회비' FROM DUAL UNION ALL
SELECT '1103', '1103000', '임대사업수입' FROM DUAL UNION ALL
SELECT '1103', '1103001', '사무실임대료수입' FROM DUAL UNION ALL
SELECT '1103', '1103002', '영업장임대료수입' FROM DUAL UNION ALL
SELECT '1104', '1104000', '사용료수입' FROM DUAL UNION ALL
SELECT '1104', '1104001', '주차장사용료수입' FROM DUAL UNION ALL
SELECT '1104', '1104002', '회의실사용료수입' FROM DUAL UNION ALL
SELECT '1104', '1104003', '기타사용료수입' FROM DUAL UNION ALL
SELECT '2000', '2000000', '비용' FROM DUAL UNION ALL
SELECT '2100', '2100000', '사업비용' FROM DUAL UNION ALL
SELECT '2101', '2101000', '일반사업비' FROM DUAL UNION ALL
SELECT '2101', '2101001', '상공진흥비' FROM DUAL UNION ALL
SELECT '2101', '2101002', '경제조사비' FROM DUAL UNION ALL
SELECT '2101', '2101003', '유통조사비' FROM DUAL UNION ALL
SELECT '2101', '2101004', '국제협력비' FROM DUAL UNION ALL
SELECT '2101', '2101005', '홍보비' FROM DUAL UNION ALL
SELECT '2103', '2103000', '수익사업사업비' FROM DUAL UNION ALL
SELECT '2103', '2103001', '매출원가' FROM DUAL UNION ALL
SELECT '2103', '2103002', '재산관리비' FROM DUAL UNION ALL
SELECT '5000', '5000000', '자산' FROM DUAL UNION ALL
SELECT '5100', '5100000', '유동자산' FROM DUAL UNION ALL
SELECT '5101', '5101000', '당좌자산' FROM DUAL UNION ALL
SELECT '5101', '5101001', '현금' FROM DUAL UNION ALL
SELECT '5101', '5101002', '당좌예금' FROM DUAL UNION ALL
SELECT '5101', '5101003', '보통예금' FROM DUAL
)
SELECT *
FROM T
부탁드리겠습니다.
|