行列转换问题,给你一个例子吧,照着改改
示例表:id  sid           course  result1   2005001 语文     80.0
2   2005001 数学     90.0
3   2005001 英语     80.0
4   2005002 语文     56.0
5   2005002 数学     69.0
6   2005002 英语     89.0执行select sid,语文=isnull(sum(case course when '语文' then result end),0),
   数学=isnull(sum(case course when '数学' then result end),0),
   英语=isnull(sum(case course when '英语' then result end),0)
   from result 
   group by sid
   order by sid 得出结果sid           语文 数学 英语 2005001 80.0  90.0  80.0
2005002 56.0  69.0  89.0

解决方案 »

  1.   

    首先,我要纠正你问题中的几个错误:表名和列名都不要用关键字来定义。另外,一定得通过一条SQL语句来获得吗?用存储过程会很容易。当然,硬是要通过一条SQL语句来获得也是可以实现的。既然你会了,我就不说了
      

  2.   

    谢谢楼上wuya8115(无涯)的回复,我做的也是用你那种方法,由于要按输入的时间区间分段,所以感觉上执行效率比较低(我现在的做法是分成三段,第一段是判断开始时间至该周周日,第二段是用一个while循环将结束时间所在周和第一段之后的周统计再UNION上第三段,即结束日期所在的周)。    对于bg1001()的回复,先说声谢谢了,是写成存储过程的。不知道你的思路是怎么样的,请指点一下