안녕하세요 초보입니다.
어떤 키워드로 검색해야할지 떠오르지 않아서 질문드립니다
아래와같이 매입매출테이블이 있습니다
날짜 | 구분 | 거래처 | 품목명 | 수량 | |
2022-11-10 | 매입 | A | 사과 | 12 | |
2022-11-10 | 매입 | A | 사과 | 13 | |
2022-11-10 | 매출 | B | 사과 | 14 | |
2022-11-12 | 매입 | A | 배 | 22 | |
2022-11-12 | 매출 | B | 배 | 23 | |
2022-11-12 | 매출 | B | 배 | 24 | |
2022-11-12 | 매출 | B | 배 | 25 | |
매입매출테이블 |
| ||||
| |||||
날짜 | 매입거래처 | 매출거래처 | 품목명 | 매입수량 | 매출수량 |
2022-11-10 | A | B | 사과 | 12 | 14 |
2022-11-10 | A | 사과 | 13 | ||
2022-11-12 | A | B | 배 | 22 | 23 |
2022-11-12 | B | 배 | 24 | ||
2022-11-12 | B | 배 | 25 | ||
원하는 결과 | |||||
|
혹시 좋은 방법이 있을까요
참고바랍니다.
with tmp as (
select '2022-11-10' as 날짜, '매입' as 구분, 'A' as 거래처, '사과' as 품목명, 12 as 수량 union all
select '2022-11-10','매입','A','사과', 13 union all
select '2022-11-10','매출','B','사과', 14 union all
select '2022-11-12','매입','A','배 ', 22 union all
select '2022-11-12','매출','B','배 ', 23 union all
select '2022-11-12','매출','B','배 ', 24 union all
select '2022-11-12','매출','B','배 ', 25)
select
coalesce(a.날짜, b.날짜) as 날짜,
a.거래처 as 매입거래처,
b.거래처 as 매출거래처,
a.품목명,
a.수량 as 매입수량,
b.수량 as 매출수량
from
(select
*,
row_number() over (partition by 날짜,구분 order by 구분 ) as tp
from tmp
where 구분 = '매입') a
full outer join
(select
*,
row_number() over (partition by 날짜,구분 order by 구분 ) as tp
from tmp
where 구분 = '매출') b
on a.날짜 = b.날짜
and a.tp = b.tp