idnum | ym | outdate | price |
1 | 2017-02 | 02-01 | 10000 |
1 | 2017-03 | 03-13 | 20000 |
1 | 2017-04 | 04-10 | 10000 |
2 | 2017-01 | 01-18 | 20000 |
2 | 2017-02 | 02-22 | 30000 |
2 | 2017-05 | 05-23 | 10000 |
3 | 2017-02 | 02-04 | 50000 |
4 | 2017-04 | 04-21 | 10000 |
4 | 2017-04 | 04-21 | 20000 |
이런식으로 월별 지급일자 및 지급금액..
이런 데이터가 있습니다.
이런 데이터를...
idnum | 01_outdate | 01_price | 02_outdate | 02_price | 03_outdate | 03_price | 04_outdate | 04_price | 05_outdate | 05_price | 06_outdate | 06_price |
1 | 02-01 | 10000 | 03-13 | 20000 | 04-10 | 10000 | ||||||
2 | 01-18 | 20000 | 02-22 | 30000 | 05-23 | 10000 | ||||||
3 | 02-04 | 50000 | ||||||||||
4 | 04-21 | 30000 |
이런식으로 월별에 맞게 가로형식(?)으로 만들고 싶습니다..
이런건 어떻게 해야할지...?
고수님들의 답변을 기다리겠습니다..
Comment 1
-
건우아빠
2017.10.20 11:46
with res as
(
select 1 idnum, '2017-02' ym, '02-01' outdate, 10000 price union all
select 1, '2017-03', '03-13', 20000 union all
select 1, '2017-04', '04-10', 10000 union all
select 2, '2017-01', '01-18', 20000 union all
select 2, '2017-02', '02-22', 30000 union all
select 2, '2017-05', '05-23', 10000 union all
select 3, '2017-02', '02-04', 50000 union all
select 4, '2017-04', '04-21' , 10000 union all
select 4, '2017-04', '04-21', 20000 )
select idnum
, max([01_outdate]) [01_outdate]
, sum([01_price] ) [01_price]
, max([02_outdate]) [02_outdate]
, sum([02_price] ) [02_price]
, max([03_outdate]) [03_outdate]
, sum([03_price] ) [03_price]
, max([04_outdate]) [04_outdate]
, sum([04_price] ) [04_price]
from ( select idnum
-- , ym
, outdate , price
, right(ym,2)+'_outdate' mm
, right(ym,2)+'_price' mm_price
from res ) As P
PIVOT (
max(outdate)
FOR [mm] IN ( [01_outdate],[02_outdate],[03_outdate],[04_outdate] )
) AS PVT1
PIVOT (
sum(price)
FOR [mm_price] IN ( [01_price],[02_price],[03_price],[04_price] )
) AS PVT2
group by idnum