1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | -- 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.월급지급일 ; |