SELECT * FROM
(select T3.BGName AS 사업부명
, T2.DeptName AS 부서명
, T1.EmpName AS 사원명
, T6.SalName AS 수당공제명
, T5.Money AS 금액
from Employee T1
Inner join Dept T2
On T1.DeptCD = T2.DeptCD
Inner join BusinessGroup T3
On T2.BG = T3.BG
Inner Join Salary T4
on T1.EmpNO = T4.EmpNO
Inner join SalDetail T5
On T4.EmpNO = T5.EmpNO
Inner Join SalComCode T6
On T5.SalCode = T6.SalCode
where T4.SalDT like '20130520'
group by T3.BGName, T2.DeptName, T1.EmpName, T5.Money, T6.SalName) AS P
PIVOT (SUM(P.금액)
FOR 수당공제명
in ([건강보험], [고용보험], [국민연금], [기타공제], [기본금], [상여금], [연장수당], [직책수당], [직급수당], [자격증수당], [기타수당])) AS A
일단 현 단계에서는 사업부-부서-사원명-수당 및 공제금액으로 잘 나옵니다.
이번엔 여기에서 중간에 수당합계 및 공제합계와 실지급액(수당합-지급액)을 추가하려고 합니다.
일단 공제금액(4개 열)-공제합-수당금액(7개 열)-수당합-실지급액순으로요.
좋은 답변 기다립니다!!!!
읍스 DB가 SQL Server 였나요...
오라클로 다 짜 놨는데~~
근데, SQL SERVER도 PIVOT이 되나요? 위 질문에 PIVOT 함수가 있네요.
일단, 혹시 몰라서 올려 볼게요.
WITH PAY AS (select T3.BGName AS 사업부명 , T2.DeptName AS 부서명 , T1.EmpName AS 사원명 , T6.SalName AS 수당공제명 , 수당구분코드 <-- 수당, 공제 구분코드가 반드시 필요 , T5.Money AS 금액 from Employee T1 Inner join Dept T2 On T1.DeptCD = T2.DeptCD Inner join BusinessGroup T3 On T2.BG = T3.BG Inner Join Salary T4 on T1.EmpNO = T4.EmpNO Inner join SalDetail T5 On T4.EmpNO = T5.EmpNO Inner Join SalComCode T6 On T5.SalCode = T6.SalCode where T4.SalDT like '20130520' group by T3.BGName, T2.DeptName, T1.EmpName, T5.Money, T6.SalName ) SELECT * FROM( SELECT * FROM PAY union all SELECT 사업부명 , 부서명 , 사원명 , decode(수당구분코드, '공제관련수당코드', '공제합계', '수당합계') AS 수당공제명 , sum(decode(수당구분코드, '공제관련수당코드', 금액, 금액)) AS 금액 FROM pay GROUP BY 사업부명 , 부서명 , 사원명 union all SELECT 사업부명 , 부서명 , 사원명 , '실지급액' AS 수당공제명 , sum(decode(수당구분코드, '공제관련수당코드', 금액 * -1, 금액)) AS 금액 FROM pay GROUP BY 사업부명 , 부서명 , 사원명 ) AS P PIVOT (SUM(P.금액) FOR 수당공제명 in ([건강보험], [고용보험], [국민연금], [기타공제], [공제합계], [기본금], [상여금], [연장수당], [직책수당], [직급수당], [자격증수당], [기타수당], [수당합계],[실지급액])) AS A
-- 작성하신 쿼리에서 SELECT * 대신 필요 항목명들 주욱 적어주시면 됩니다. SELECT 사업부명 , 부서명 , 사원명 , 건강보험 , 고용보험 , 국민연금 , 기타공제 , 건강보험 + 고용보험 + 국민연금 + 기타공제 AS 공제합계 , 기본금 , 상여금 , 연장수당 , 직책수당 , 직급수당 , 자격증수당 , 기타수당 , 기본금 + 상여금 + 연장수당 + 직책수당 + 직급수당 + 자격증수당 + 기타수당 AS 수당합계 , 기본금 + 상여금 + 연장수당 + 직책수당 + 직급수당 + 자격증수당 + 기타수당 - 건강보험 - 고용보험 - 국민연금 - 기타공제 AS 실지급액