日期:2014-05-20  浏览次数:20469 次

高分求解高难度sql语句(对小弟来说),请各位老大帮忙!
表ProScore如下:
StuId       StuName   ProName   Score
1                     a               语文       70
1                     a               数学       70
1                     a               英语       70
2                     b               语文       80
2                     b               数学       80
2                     b               英语       80
3                     c               语文       90
3                     c               数学       90
3                     c               英语       90

我用下面的SQL语句:
declare   @s   varchar(4000)  
set   @s= 'select   StuId   '+ '学号 '+ ',StuName   '+ '姓名 '  
select   @s=@s+ ',sum(case   ProName   when   ' ' '+ProName+ ' ' '   then   Score   else   0   end)   [ '+ProName+ '] '
from(select   distinct   ProName   from   ProScore)   as   a  
set   @s=@s+ '   from   ProScore   group   by   StuId,StuName '  
exec(@s)
实现了如下表的显示:
学号         姓名           数学         英语         语文
1                 a               70               70             70
2                 b               80               80             80
3                 c               90               90             90

请问应该怎样修改我的SQL语句才能实现如下显示呢?
学号         姓名           数学         英语         语文       总分       平均分
1                 a               70               70             70         210           70
2                 b               80               80             80         240           80