编程论坛
注册
登录
编程论坛
→
VFP论坛
生成一个班级学生的成绩排名
dznbomingzhi
发布于 2020-11-04 22:31, 2296 次点击
现有一个班级学生考试成绩表,现在要生成学生在班级的排名,排名规则为先以总成绩从高到低排序,总成绩相同按语文成绩排序,如果总成绩与语文成绩都相同再按数学成绩排序,如果总成绩、语文、数学成绩都相同,则排名与相同,请问该如何设计程序,谢谢
7 回复
#2
sdta
2020-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
sdta
2020-11-04 23:15
只有本站会员才能查看附件,请
登录
[此贴子已经被作者于2020-11-4 23:27编辑过]
#4
schtg
2020-11-05 05:48
给一个我自己的思路:新增一个暂且称为“全分”(Qf)的字段,其意思就是专门用来排序的,按照你的排序原则,全分 = zf + (zf+yw) + (zy+yw+sx)(如有其他学科依次增加),然后按照全分排序。纯个人意见,仅供参考哈!
#5
wengjl
2020-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
wengjl
2020-11-05 09:32
只有本站会员才能查看附件,请
登录
楼主看一下,是否符合你的目标。
#8
vfpzhu
2020-11-05 12:34
1.建立相应索引。
2.用SELECT 语句产生相应表。
1