有原始成绩表1和合成成绩表2可用,记录从几千到几万
合成成绩表2由原始成绩表1数据转换而来,问如何写查询语句得到表3?(1)原始成绩表1编号 课程 分数
001 语文 105
001 数学 118
001 英语 103
002 语文 104
002 数学 122
002 英语 108
...(2)合成成绩表2
编号 语文 数学 英语
001 105 118 103
002 104 122 108
...要求得到下表(语文、数学、英语均从高到低排)
(3)分数段表3
人数 语文 数学 英语
1 105 122 108
2 104 118 103
...我才注册,不知道给多少分

解决方案 »

  1.   

    每个科目加个排序,然后join
     
      

  2.   

    select 人数=row_number()over( order by getdate()),* from tb order by 语文 desc, 数学 desc, 英语 desc
      

  3.   

    select 人数=row_number()over( order by getdate()),* from tb order by 语文 desc, 数学 desc, 英语 descSQL2005新函数一时还看不太明白,主要是客户端已安装有SQL2000,不知道SQL2000有什么简单办法真不行就用SQL2000的笨办法 ,每个科目排序加一个自动增量字段再连接