업무를 하는 도중에 아래와 같은 결과 값이 나오게 해야 하는데 짱구가 잘 안돌아가네요
부서코드 이름
01 ABC
01 CDE
02 EFG
결과값
-------------------------
부서코드012 <-- 부서코드01건수2를 의미
ABC <-- 01코드의 이름
CDE <-- 01코드의 이름
부서코드021 <-- 부서코드02건수1을 의미
EFG <-- 02코드의 이름
예전에 비슷한 쿼리를 작성했던거 같은데 다시 작성하려고 하니 짱구가 안돌아가요.
WITH T AS ( SELECT '01' CODE, 'ABC' NAME FROM DUAL UNION ALL SELECT '01' CODE, 'CDE' NAME FROM DUAL UNION ALL SELECT '02' CODE, 'EFG' NAME FROM DUAL ) SELECT DECODE(GROUPING(NAME),1,'부서코드'||CODE||COUNT(1),NAME) FROM T GROUP BY ROLLUP(CODE, NAME) HAVING GROUPING_ID(CODE,NAME) != 3 ORDER BY CODE, GROUPING(NAME) DESC, NAME
WITH T AS ( SELECT '01' CODE, 'ABC' NAME FROM DUAL UNION ALL SELECT '01' CODE, 'CDE' NAME FROM DUAL UNION ALL SELECT '02' CODE, 'EFG' NAME FROM DUAL ) select * from ( select code,'부서코드'||code||count(code) name from t group by code union all select code, name from t ) order by code, replace(name,'부서코드','')