有分数表a
id number eeid
1   -3      1
2   -4      2
3   3       3
如果分数大于95分 优秀
80到95分称职
80以下不称职
当所有人分数都低于95分时 选一个分数最高的为优秀
其它为称职

解决方案 »

  1.   

    假如你的表里有分数字段score,可以试试SELECT *,
    IF(
    (SELECT COUNT(*) FROM `tablename` tmp1 WHERE tmp1.score>95)<1,
    IF(
    (SELECT COUNT(*) FROM `tablename` tmp2 WHERE tmp2.score>tmp.score)<1
    ,'优秀'
    ,'称职'),
    IF(score>95,'优秀',IF(score<80,'不称职','称职'))
    ) AS lev
    FROM `tablename` tmp 
    ORDER BY score DESC 
      

  2.   


    number是分数, eeid是用户id
      

  3.   

    select eeid, case when s=(select max(s) from (select eeid,sum(number) as s from 分数表a group by eeid) x) then '优秀'
    when s>-5 then '优秀'
    when s>-20 then '称职'
    else '不称职' end
    from (select eeid,sum(number) as s from 分数表a group by eeid) t