/*                                      
select *
   into test
  from ( select 1 seq  ,'테스트'    고객    ,'2009-02-04' 일자,'E-MAIL' 방법 union all
   select 2 ,'테스트'                 ,'2009-02-05' ,'전화' union all
   select 3 ,'테스트'                 ,'2009-02-06' ,'기타' union all
   select 4 ,'테스트'                 ,'2009-02-09' ,'기타' union all
   select 5 ,'ALBERFLEX'    ,'2009-02-04' ,'E-MAIL' union all
   select 6    ,'test'                    ,'2009-02-09'  ,'기타' ) r 
 
select  고객 , 일자,row_number() over (partition by 고객 order by 고객, seq) 고객seq,방법
  into  test1
  from  test 

*/

 

DECLARE @sql VARCHAR(max)
set @sql = 'select 고객'
 
select @sql = @sql 
           + ', max(case when 고객seq = ' + convert(varchar,고객seq) + ' then ' + '''''+일자+''''' + ' else '''' end) 일자'
           + ', max(case when 고객seq = ' + convert(varchar,고객seq) + ' then ' + '''''+방법+''''' + ' else '''' end) 방법'
  from test1 group by  고객seq 

 select @sql = @sql + '  from test1 group by 고객 order by 고객'


 select @sql


 EXEC(@sql)

 

/////////////////////////////////////////

drop table #test
select *
into #test
from
(select '참여자' 구분 ,'박기효' 이름 ,30 cnt , '2009-04' 년월 union all
select '참여자' ,'박기효' ,31, '2009-05' union all
select '참여자' ,'박기효' ,30, '2009-06' union all
select '참여자' ,'박기효' ,31, '2009-07' union all
select '참여자' ,'박기효' ,11, '2009-08' union all
select '참여자' ,'이기수' ,30, '2009-09' union all
select '참여자' ,'이기수' ,31, '2009-10' union all
select '참여자' ,'이기수' ,31, '2009-08' 

) r

 

DECLARE @sql VARCHAR(max)
set @sql = 'select 구분 , 이름'

select @sql = @sql
            + ',  sum(case when  seq = ' + convert(varchar, r.seq) + ' then cnt else 0 end) [' + 년월 +']'
  from ( select row_number() over (order by 년월) seq
             ,  년월
           from  #test group by 년월 ) r

 select @sql = @sql + 'from ( select r.seq, a.*
                                from ( select row_number() over (order by 년월) seq ,  년월
                                         from #test ) r  inner join  #test a on r.년월 = a.년월) rr 
                       group by 구분 , 이름 '
 
select @sql 

EXEC(@sql)

 

'연구개발 > DBA' 카테고리의 다른 글

작업모니터  (0) 2013.03.29
트리거를 이용한 DDL 추적  (0) 2013.03.21
NEWID  (0) 2013.03.08
트랜잭션 로그 성능을 향상시키는 8가지 방법  (0) 2013.02.21
트랜잭션 가상 로그 파일 개수 확인  (0) 2013.02.21

+ Recent posts