1. 현재 최상위는 상위코드는 '*'로 설정되어 있으며, 기본코드를 '기본키'로 가집니다. SELECT
기본코드 FROM 테이블명
where 상위코드 = '*'
2. 아래 처럼 검색시 '0001'하위에 해당되는 모든 리스트를 볼 수 있습니다.SELECT
level as levelnm,
A.기본코드
A.상위코드
FROM 테이블명 A
START WITH A.상위코드 = '0001'
CONNECT BY PRIOR A.기본코드 = A.상위코드
ORDER SIBLINGS BY A.정렬번호, A.부서번호
1.번처럼 검색하면 최상위 목록만 20여개 만들어지는데요 그 옆에 '건 수'라는 컬럼으로 기본코드가 '0001'(최상위임)이란 항목 옆에 130개 이렇게 보여주고 싶습니다. 추가로 '0132'(최상위임) 항목 옆은 50 이런식으로 보여주고 싶은데 어찌 검색해야 할지..... 도움을 구합니다.....
by 비니부장
[2012.04.03 13:58:21]
하위 레벨 건수를 구하는 함수가 있는지는 잘 모르겠습니다만... 단순하게는
A.상위코드 다음에
(select count(*) from 테이블명 B start with B.상위코드 = A.기본코드 CONNECT BY PRIOR B.기본코드 = B.상위코드) AS 건수
를 추가해주시면 됩니다.
by 마농
[2012.04.03 14:02:56]
SELECT 최상위코드
, COUNT(*) AS "건 수"
FROM (SELECT CONNECT_BY_ROOT 기본코드 AS 최상위코드
FROM 테이블명
START WITH 상위코드 = '*'
CONNECT BY PRIOR 기본코드 = 상위코드
)
GROUP BY 최상위코드
;
SELECT 기본코드
, (SELECT COUNT(*)
FROM 테이블명
START WITH 기본코드 = a.기본코드
CONNECT BY PRIOR 기본코드 = 상위코드
) AS "건 수"
FROM 테이블명 a
WHERE 상위코드 = '*'
;
by 물개
[2012.04.03 14:17:54]
헐 이렇게 간단하게 해결하시다니...........
절 제자로 받아 주십시오 (__)
고맙습니다 ㅎㅎㅎㅎ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.