MSSQL 기초쿼리 질문 드립니다 0 1 5,125

by 미노 [SQL Query] mssql [2024.08.23 09:30:09]


급여테이블이 있습니다. (키는 이름과 지급년월로 하겠습니다.)

이름 지급년월 급여
A 202407 100만원
B 202407 100만원
A 202408 200만원
B 202408 300만원
C 202408 100만원

 

급여의 변동사항을 조회하고 싶습니다.

조회조건 : 기준년월 202407 / 비교년월 202408

이름 기준년월 비교년월
A 100만원 200만원
B 100만원 300만원
C 0원 100만원

C의 경우 7월에는 급여가 없지만 8월에는 있기때문에 기준년월의 경우 0원으로 뜨게 하고싶습니다. (조회조건을 기준년월 202406이나 기타 다른 월로 변경되어도 0원으로 동일하게)

이땐 어떤식으로 하면 될지 도움 부탁드립니다.

 

by 우주민 [2024.08.23 09:58:16]
with base_t as (
select 'A' as 이름, '202407' as 지급년월, '100만원' as 급여 union all
select 'B', '202407', '100만원' union all
select 'A', '202408', '200만원' union all
select 'B', '202408', '300만원' union all
select 'C', '202408', '100만원' union all 
select 'D', '202401', '100만원'            -- 테스트를 위한 추가 데이터
)
select 이름
, max(case when 지급년월 = '202407' then 급여 else '0원' end) as 기준년월
, max(case when 지급년월 = '202408' then 급여 else '0원' end) as 비교년월
from base_t
group by 이름
order by 1

해당 쿼리는 기준/비교 년월 과 상관없이 테이블 내의 모든 이름을 기준으로 데이터를 출력 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입