请教行列转换SQL
Table1 
 Number                        Year                                    Type 
 6                                       2001                                       P001 
 8                                       2001                                       P003 
 9                                       2002                                       P001 
 1                                       2004                                       P005 
 ..                                    ..                                             ..   
 需转换为table2 
 Year      P001      P002   P003   ....P013    
 2001         6               0            0         ....   0             
 2001         0               0            8         ....   0 
 2002         9               0            0         ....   0   
 请教用sql语句如何实现.                      
------解决方案--------------------2001   6     0    0   .... 0     
 2001   0     0    8   .... 0   
 这里不对吧.
------解决方案--------------------這個問題的人還真多,給你個參考 
 Name Subject Result 
     张三 语文  73 
     张三 数学  83 
     张三 物理  93 
     李四 语文  74 
     李四 数学  84 
     李四 物理  94   
     想变成  
     姓名 语文 数学 物理 
     张三 73  83  93 
     李四 74  84  94   
     create table #t 
     ( 
     Name    varchar(10) , 
     Subject varchar(10) , 
     Result  int 
     )   
     insert into #t(Name , Subject , Result) values( '张三 ', '语文 ', '73 ') 
     insert into #t(Name , Subject , Result) values( '张三 ', '数学 ', '83 ') 
     insert into #t(Name , Subject , Result) values( '张三 ', '物理 ', '93 ') 
     insert into #t(Name , Subject , Result) values( '李四 ', '语文 ', '74 ') 
     insert into #t(Name , Subject , Result) values( '李四 ', '数学 ', '83 ') 
     insert into #t(Name , Subject , Result) values( '李四 ', '物理 ', '93 ')   
     declare @sql varchar(8000) 
     set @sql =  'select Name as  ' +  '姓名 ' 
     select @sql = @sql +  ' , sum(case Subject when  ' ' ' + Subject +  ' ' ' then Result end) [ ' + Subject +  '] ' 
     from (select distinct Subject from #t) as a 
     set @sql = @sql +  ' from #t group by name ' 
     exec(@sql)    
     drop table #t 
------解决方案----------------------如果Type是固定13個 
 Select 
 	[Year], 
 	SUM(Case Type When  'P001 ' Then Number Else 0 End) As P001, 
 	SUM(Case Type When  'P002 ' The