注册 登录
编程论坛 VFP论坛

并列名次参考上线名次排名问题

分号 发布于 2023-04-24 11:47, 200 次点击
只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录


想按照 类型 进行 排名,当出现并列时,考虑,语文上线名次。例如 ,合并名次都是3,名次并列为第一名,但语文上线名次是1,名次就是1、2
8 回复
#2
schtg2023-04-24 14:41
回复 楼主 分号
最好辅以图示。
是按1、2、2、3、3、4……,还是按1、2、2、4、4、6……,不知理解对否?
参考上线名次?

[此贴子已经被作者于2023-4-24 14:44编辑过]

#3
分号2023-04-24 15:07
12345678 的顺序,有并列的,考虑语文上线名 的名次。
#4
分号2023-04-24 16:05
只有本站会员才能查看附件,请 登录


出现并列名次后,看上线名次,把并列分清
#5
分号2023-04-24 17:35
只有本站会员才能查看附件,请 登录


先收工弄了。。。
#6
csyx2023-04-25 06:42
Select bj, 0000 as 排名 from 积分合并 order by 语文名合并, 语文上线名 into cursor 排名 Readwrite
Update 排名 set 排名 = Recno()
Update t set t.语文合名次 = s.排名 from 积分合并 t inner join 排名 s on t.bj == s.bj
#7
分号2023-04-25 10:21
还有个  类别的 限制。要按照类别,分别排出 1 2 3 4 5 6
#8
csyx2023-04-25 10:39
哪来的类别?截图上只看到类型

程序代码:
Select bj, 类型, Cast(0 as I) as 排名 from 积分合并 order by 类型, 语文名合并, 语文上线名 into cursor 排名 Readwrite
Update 排名 set 排名 = Recno()
Select 类型, Min(排名) as 排名 from 排名 group by 类型 into cursor 类型
Update t set t.语文合名次 = 1 + s1.排名 - s2.排名 ;
    from 积分合并 t ;
    inner join 排名 s1 on t.bj == s1.bj ;
    inner join 类型 s2 on t.类型 == s2.类型
Use in Select('排名')
Use in Select('类型')

*!*    Select * from 积分合并 order by 类型, 语文合名次    && 排序列出, 查验结果
#9
sdta2023-04-30 19:59
问题说清楚才能解决问题啊
1