注册 登录
编程论坛 VFP论坛

生成一个班级学生的成绩排名

dznbomingzhi 发布于 2020-11-04 22:31, 2296 次点击
现有一个班级学生考试成绩表,现在要生成学生在班级的排名,排名规则为先以总成绩从高到低排序,总成绩相同按语文成绩排序,如果总成绩与语文成绩都相同再按数学成绩排序,如果总成绩、语文、数学成绩都相同,则排名与相同,请问该如何设计程序,谢谢
7 回复
#2
sdta2020-11-04 22:44
给些数据看看
只有两种情况:一是总分相同,语文、数学各不相同,二是三门成绩对应相同。
程序代码:
SELECT kh, zf, yw, sx, 00 mc, 00 mc1 FROM pm ORDER BY zf DESC, yw DESC, sx DESC INTO CURSOR mc READWRITE
STORE 0 TO lnzf, lnyw, lnmc, lnrs, lnrs1
SCAN
    IF zf = lnzf AND yw = lnyw
        lnrs1 = lnrs1 + 1
    ELSE
        lnmc = lnmc + 1
        lnrs = lnrs + 1 + lnrs1
        lnrs1 = 0
    ENDIF
    REPLACE mc WITH lnmc, mc1 WITH lnrs
    lnzf = zf
    lnyw = yw
ENDSCAN
BROWSE


[此贴子已经被作者于2020-11-6 20:11编辑过]

#3
sdta2020-11-04 23:15
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2020-11-4 23:27编辑过]

#4
schtg2020-11-05 05:48
给一个我自己的思路:新增一个暂且称为“全分”(Qf)的字段,其意思就是专门用来排序的,按照你的排序原则,全分 = zf + (zf+yw) + (zy+yw+sx)(如有其他学科依次增加),然后按照全分排序。纯个人意见,仅供参考哈!
#5
wengjl2020-11-05 08:10
sele *,0000 as mch from cjk orde by zf desc,yw desc,sx desc into table tmp


[此贴子已经被作者于2020-11-5 09:33编辑过]

#6
厨师王德榜2020-11-05 09:20
如果 总成绩 = 语文 + 数学 ,那么
“总成绩与语文成绩都相同再按数学成绩排序”这种情况应该不会发生,
既然总成绩与语文成绩都相同,那么数学成绩也必定相同。
你条件本身就有问题。
#7
wengjl2020-11-05 09:32
只有本站会员才能查看附件,请 登录

楼主看一下,是否符合你的目标。
#8
vfpzhu2020-11-05 12:34
1.建立相应索引。
2.用SELECT 语句产生相应表。
1