2017-10-19 1 views
1

나는이집계는

declare @t as table (yea int, rating varchar(100)) 

insert into @t 
values (2012, 'US'), (2013, 'S'), (2014, 'G'), 
     (2015, 'E'), (2016, 'E')  

--select * from @T 

select 
    [2012], [2013], [2014], [2015], [2016] 
from 
    (select rating 
    from @T) p 
pivot 
    (max (rating) 
    for rating in ([2012], [2013], [2014], [2015], [2016])) as pb 

시도하고 나는이 결과를 가지고 :

2012 2013 2014 2015 2016 
-------------------------------------- 
NULL NULL NULL NULL NULL 

을하지만 난 정말 대신이 결과 싶습니다

2012 2013 2014 2015 2016 
------------------------------------- 
US  S  G  E  E 

이인가 max(rating) 때문에 데이터가 비어 있습니까? 그렇다면 원하는 데이터를 얻으려면 어떻게해야합니까?

답변

0

당신은 (내가 왼쪽 그래서 참으로 오타가 그대로 있다면 확실하지) 참

declare @t as table (yea int, rating varchar(100)) 
     insert into @t values (2012,'US')  
     insert into @t values (2013,'S')     
     insert into @t values (2014,'G') 
     insert into @t values (2015,'E')   
     insert into @t values (2016,'E')   
     --select * from @T 
     select [2012],[2013],[2014],[2015],[2016] 
      from 
      (select yea,rating 
      from @T 
      ) p 
      pivot 
      (max (rating) for yea in ([2012],[2013],[2014],[2015],[2016])) as pb 

반환 누락 된

2012 2013 2014 2015 2016 
US  S  G  E  E 
관련 문제