有一表学生的成绩表,其结构如下:
Term smalldatetime not Null  学期
Std_ID int not null 学号
Subj_Id int not null 课程编号
Mark decimal(9,2) Null 课程成绩
Order samllint Null 次序
请你为每个学期每门课程排一个次序(按降序,成绩相同的同一次序),用Procedure和试图各自实现

解决方案 »

  1.   

    order by 学期,课程,课程成绩 desc
      

  2.   

    update T
    set  [order]=1+(select count(*) from T a where a.term=T.term  and a.Subj_Id=T.Subj_Id  and a.Mark>T.Mark)
      

  3.   

    SELECT A.Term,A.Std_ID,A.Subj_Id,A.Mark, B.cnt - (select count(1) from TB where Mark > A.Mark) as cx FROM TB A INNER JOIN 

    SELECT Term,Std_ID,count(1) as cnt FROM TB GROUP BY Term,Std_ID
    )B ON A.Term=B.Term AND A.Std_ID=B.Std_ID
    order by A.Term,A.Std_ID,cx