3 ID int 4 0
0 Dept varchar 50 1
0 Name varchar 50 1
0 Check_Month datetime 8 1
0 Checker varchar 50 1
0 CheckDate datetime 8 1
0 CheckResult int 4 1结构就是这样的,我的分数只存放在一个字段里(checkResult)中,请问高手有什么好的办法吗?

解决方案 »

  1.   

    select a.* from tablename a,
    (select userid,count(*) as grade5 from TableName where grade=5 group by userid) as a5,
    (select userid,count(*) as grade4 from TableName where grade=4 group by userid) as a4,
    (select userid,count(*) as grade3 from TableName where grade=3 group by userid) as a3,
    (select userid,count(*) as grade2 from TableName where grade=2 group by userid) as a2,
    (select userid,count(*) as grade1 from TableName where grade=1 group by userid) as a1
    where a.userid =* a5.userid
    and a.userid =* a4.userid
    and a.userid =* a3.userid
    and a.userid =* a2.userid
    and a.userid =* a1.userid
    order by grade5 desc ,grade4 desc ,grade3 desc,grade2 desc,grade1 descSQLSERVER写法!!!
      

  2.   

    若该用户没有得过五分怎么排?DBMS是什么?
    SQL SERVER:
    select tablename.*
    from tablename ,(select name,count(checkresult) as fcount 
                     from tablename
                     where checkresult=5
                     group by name) t1
    where tablename.name*=t1.name
    order by t1.fcount desc
      

  3.   

    select Name, CheckResult,sum(case CheckResult when 5 then 1 else 0 end)
    from TableName order by 3 desc;
    /***************************************************/
    轻轻地我走了,正如我轻轻地来.
    在雪地中慢慢地走过,不留下一个脚印.
    /***************************************************/
      

  4.   

    select Name, sum(case CheckResult when 5 then 1 else 0 end)
    from TableName 
    group by Name order by 2 desc;
    /***************************************************/
    铁的承诺,风的回忆.
    永远的亚特兰蒂斯,永远的炎龙骑士团.
    /***************************************************/
      

  5.   

    谢谢 icevi(按钮工厂) 按照你的方法我已经实现了,如果方便的话能不能留下一个联系方式!再次谢谢各位的支持!