-- 1. 피벗 후 조인 -- SELECT a.사원번호, a.월급지급일 , a.총수당, b.수당액1, b.수당액2, b.수당액3 , a.총공제, b.공제액1, b.공제액2, b.공제액3 , a.실지급 FROM 월급 a , (SELECT 사원번호, 월급지급일 , MIN(DECODE(월급코드, '수당액1', 금액)) 수당액1 , MIN(DECODE(월급코드, '수당액2', 금액)) 수당액2 , MIN(DECODE(월급코드, '수당액3', 금액)) 수당액3 , MIN(DECODE(월급코드, '공제액1', 금액)) 공제액1 , MIN(DECODE(월급코드, '공제액2', 금액)) 공제액2 , MIN(DECODE(월급코드, '공제액3', 금액)) 공제액3 FROM 월급상세 GROUP BY 사원번호, 월급지급일 ) b WHERE a.사원번호 = b.사원번호 AND a.월급지급일 = b.월급지급일 ORDER BY a.사원번호, a.월급지급일 ; -- 2. 조인 후 피벗 SELECT a.사원번호, a.월급지급일 , a.총수당 , MIN(DECODE(b.월급코드, '수당액1', b.금액)) 수당액1 , MIN(DECODE(b.월급코드, '수당액2', b.금액)) 수당액2 , MIN(DECODE(b.월급코드, '수당액3', b.금액)) 수당액3 , a.총공제 , MIN(DECODE(b.월급코드, '공제액1', b.금액)) 공제액1 , MIN(DECODE(b.월급코드, '공제액2', b.금액)) 공제액2 , MIN(DECODE(b.월급코드, '공제액3', b.금액)) 공제액3 , a.실지급 FROM 월급 a , 월급상세 b WHERE a.사원번호 = b.사원번호 AND a.월급지급일 = b.월급지급일 GROUP BY a.사원번호, a.월급지급일, a.총수당, a.총공제, a.실지급 ORDER BY a.사원번호, a.월급지급일 ;