dragonlhp 发表于 2014-11-16 11:32:54

排序问题

现有一个成绩表 得成绩如下:
考号                     姓名         班级      yw      sx      yy      wl         zz      sw       di         li      hx       总分
13010300501      曾一鸣      二1      67      91      86      94      94      0      67      0      0      499
13010300502      谢丹         二3      71      59      68      48      50      0      47      0      0      343
13010300503      谢为翰      二3      48      84      61      73      26      0      48      0      0      340
13010300504      黄云峰      二3      52      78      50      87      61      0      50      0      0      378
13010300505      李亚敏      二3      56      56      53      48      41      0      35      0      0      289
13010300506      黄伟康      二2      64      66      69      85      49      0      63      0      0      396
13010300507      朱佳琦      二2      44      86      44      77      48      0      49      0      0      348
13010300508      谢佳男      二3      50      57      59      56      27      0      35      0      0      284
13010300509      何佳航      二3      40      79      21      55      21      0      34      0      0      250
13010300510      王俊枫      二2      66      67      78      88      63      0      52      0      0      414
13010300511      马俊         二3      60      66      67      58      59      0      34      0      0      344
13010300512      尹兆海      二3      50      42      49      41      45      0      31      0      0      258

现在我想做个视图,在每一科后面添加一个排名(包含并列排名)

考号, 姓名, 班级, yw, yw_mp, sx, sx_mp, yy, yy_mp, wl, wl_pm, zz, zz_pm, sw, sw_mp, di, dl_pm, ls, ls_pm, hx, hxp,总分,总分_pm



现在我能做出来的是单科排名查询,无法作为视图,
SELECT `name`, `sx`,sx_sor FROM(
    SELECT `name`, `sx`
       ,(CASE WHEN @tMark=sx THEN @tm ELSE @tm :=@tm+1 END) AS sx_sor
       ,(@tMark:=sx) AS tm
    FROM`cj` AS m ,(SELECT @tm :=0,@tMark:=0) AS t1
   ORDER BY sx DESC
) AS t2
ORDER BY t2.sx_sor desc


结果
姓名         分数   排名
lisi            10      5
zhangsan    20      4
wangwu      20      4
zhaoliu      30      3
liuqi            50      2
anjiu         100      1


求助如何做到每科后面增加一个字段显示这个学生这科的排名情况,







sutie 发表于 2014-11-20 13:51:04

这个没一个的排名都得单独的算出来,自己写一个函数然后调用一下吧

admin 发表于 2014-11-20 11:54:35

这"报表"应该是需要很多个SQL,计算,然后填空上去吧...
页: [1]
查看完整版本: 排序问题