列转行到视图 的问题??求教
     张三	语文	60	2 
 李四	数学	70	3 
 王五	英语	80	4 
 王五	数学	75	5 
 王五	语文	57	6 
 李四	语文	80	7 
 张三	英语	100	8     
 把这个转成行 
 姓名   数学   英语   语文 
 李四   70	0	80	 
 王五   75	80	57	 
 张三   0	100	60	     
 语句如下 
 declare   @sql   varchar(8000)      
 set   @sql   =    'select   name   as   姓名, '    
 select   @sql   =   @sql   +    'sum(case   subject   when    ' ' '+subject+ ' ' '       
 then   source   else   0   end)   as    ' ' '+subject+ ' ' ', '    
 from   (select   distinct   subject   from   test)   as   a 
 select   @sql   =   left(@sql,len(@sql)-1)   +    '   from   test   group   by   name '    
 exec(@sql)      
 我想把它写成视图,或给出用法:目的是和别的表组合在一起 
 例如:好要有家庭住址,年龄什么的这些都是单表 
 姓名   数学   英语   语文         家庭住址      年龄 
 李四   70	0	80         1村	                  14 
 王五   75	80	57         2村	                  16 
 张三   0	100	60         3村                     15 
 以姓名为关联的. 
 谢谢你们了,这个问题能实现吗,具体怎么实现啊,谢谢你们了, 
 看的帮我顶一下好吗? 
 我觉得我很无助摸不着头脑................. 
 谢谢.
------解决方案--------------------用这种动态的作不了视图,如果你的科目知道是固定的,倒可以: 
 create view vw_test 
 as 
 select 姓名, 
 数学=sum(case when 科目= '数学 ' then score else 0 end), 
 英语=sum(case when 科目= '英语 ' then score else 0 end), 
 语文=sum(case when 科目= '语文 ' then score else 0 end) 
 from [Table] group by 姓名