본문 바로가기

프로그래밍/mysql

mysql - 행 열 변환 쿼리

반응형

select a.nHsNo, sUserName,
max(if(sdtDate_1 = 01, nHour, '')) as day_1,
max(if(sdtDate_1 = 02, nHour, '')) as day_2,
max(if(sdtDate_1 = 03, nHour, '')) as day_3,
max(if(sdtDate_1 = 04, nHour, '')) as day_4,
max(if(sdtDate_1 = 05, nHour, '')) as day_5,
max(if(sdtDate_1 = 06, nHour, '')) as day_6,
max(if(sdtDate_1 = 07, nHour, '')) as day_7,
max(if(sdtDate_1 = 08, nHour, '')) as day_8,
max(if(sdtDate_1 = 09, nHour, '')) as day_9,
max(if(sdtDate_1 = 10, nHour, '')) as day_10,
max(if(sdtDate_1 = 11, nHour, '')) as day_11,
max(if(sdtDate_1 = 12, nHour, '')) as day_12,
max(if(sdtDate_1 = 13, nHour, '')) as day_13,
max(if(sdtDate_1 = 14, nHour, '')) as day_14,
max(if(sdtDate_1 = 15, nHour, '')) as day_15,
max(if(sdtDate_1 = 16, nHour, '')) as day_16,
max(if(sdtDate_1 = 17, nHour, '')) as day_17,
max(if(sdtDate_1 = 18, nHour, '')) as day_18,
max(if(sdtDate_1 = 19, nHour, '')) as day_19,
max(if(sdtDate_1 = 20, nHour, '')) as day_20,
max(if(sdtDate_1 = 21, nHour, '')) as day_21,
max(if(sdtDate_1 = 22, nHour, '')) as day_22,
max(if(sdtDate_1 = 23, nHour, '')) as day_23,
max(if(sdtDate_1 = 24, nHour, '')) as day_24,
max(if(sdtDate_1 = 25, nHour, '')) as day_25,
max(if(sdtDate_1 = 26, nHour, '')) as day_26,
max(if(sdtDate_1 = 27, nHour, '')) as day_27,
max(if(sdtDate_1 = 28, nHour, '')) as day_28,
max(if(sdtDate_1 = 29, nHour, '')) as day_29,
max(if(sdtDate_1 = 30, nHour, '')) as day_30,
max(if(sdtDate_1 = 31, nHour, '')) as day_31
from
(
select mem.nHsNo, substr(atime.dtDate, 9, 2) as sdtDate_1, sUserName, sTel, sBankName, sBankNum, sBankUserName, sum(nActiveMin)/60 as nHour
from tbl_hs_member as mem
left outer join tbl_active_time as atime on mem.nHsNo = atime.nHsNo
where atime.dtDate like '2008-07-%'
group by mem.nHsNo, atime.dtDate
order by mem.nHsNo, atime.dtDate

) a
-- where nHsNo = 100632
group by a.nHsNo

반응형