| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1703 人关注过本帖
标题:请教一个排名问题
只看楼主 加入收藏
我是笑三少
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-11
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
请教一个排名问题
1个年级有10个班级,每个班级进行排名,同分不同名次,比如:90分 89分 88分 88分  87分 87分  87分,排名是1 2 3 4 5 6 7,每个班级都这样排
搜索更多相关主题的帖子: 排名 同名 
2019-08-20 17:16
schtg
Rank: 12Rank: 12Rank: 12
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1546
专家分:3003
注 册:2012-2-29
收藏
得分:7 
我提供一个思路,仅供参考:
   先按照班级 升序、总分 降序 排序,生成一个新表;再扫描不同班级,分别赋值名次即可。
2019-08-20 18:54
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9801
专家分:26906
注 册:2012-2-5
收藏
得分:7 
程序代码:
CREATE CURSOR cj (bj C(2), bh C(4), cj N(3), bjmc N(2))
RAND(-1)
* 生成测试数据
FOR i = 1 TO 10 && 10个班
    FOR ii = 1 TO 50 && 每个班50人
        INSERT INTO cj VALUES (PADL(i, 2, "0"),PADL(i, 2, "0") + PADL(ii, 2, "0"), RAND() * 100, 0)
    ENDFOR
ENDFOR
INDEX on bj + STR(100 - cj) TAG px
cBj = ""
SCAN 
    IF Bj == cBj
        N1 = N1 + 1
    ELSE
        N1 = 1
    ENDIF 
    REPLACE Bjmc WITH N1
    cBj = Bj
ENDSCAN
BROWSE 

坚守VFP最后的阵地
2019-08-20 21:42
schtg
Rank: 12Rank: 12Rank: 12
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1546
专家分:3003
注 册:2012-2-29
收藏
得分:0 
回复 3楼 sdta
高!
2019-08-21 10:19
金142857
Rank: 2
等 级:论坛游民
帖 子:35
专家分:61
注 册:2019-8-23
收藏
得分:7 
set safe off        
sort to e:\新表 on 成绩/p   
set talk off
use e:\新表
i=1
do while .not.eof()
repl 名次 with i
skip
i=i+1
enddo
use 旧表
dele all
pack
append from 新表
2019-08-24 08:15
快速回复:请教一个排名问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019934 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved