데이터는 3레벨까지만 표기하고 3레벨 미만 데이터의 child_cnt 값을 sum하여 표기해주고 싶습니다.
1번 데이터를 가지고 2번 데이터까지는 뽑았으나 3레벨 밑의 child_cnt 값을 sum을 어떻게 해야 할지
모르겠습니다. ㅠㅠ 고수분들의 답변 부탁드립니다.
SELECT *
FROM (
select a.menu_id
, a.kor_menu_nm as menu_nm
, a.pgm_id
, a.up_menu_id
, (select kor_menu_nm
from sstm020
where menu_id = a.up_menu_id) as up_menu_nm
, level as menu_level
, a.use_yn
, a.menu_gbn
, a.disp_ord
, (select count(1)
from sstm020 sa
where sa.up_menu_id = a.menu_id
AND sa.menu_gbn = 'P') as child_cnt
from (select distinct menu_id
from sstm020 sa, sstm010 sb
where sa.pgm_id = sb.pgm_id(+)
start with
kor_menu_nm like '%'
connect by menu_id = prior up_menu_id ) s
, sstm020 a
, sstm010 b
where s.menu_id = a.menu_id
and a.pgm_id = b.pgm_id (+)
start with a.menu_id = 'M'
connect by prior a.menu_id = a.up_menu_id
order siblings by a.disp_ord
) aa
WHERE 1=1
AND aa.child_cnt > 0 OR aa.menu_level <= 3
;