| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4062 人关注过本帖, 2 人收藏
标题:学生各科成绩排名代码的讨论
取消只看楼主 加入收藏
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
结帖率:90.48%
收藏(2)
 问题点数:0 回复次数:3 
学生各科成绩排名代码的讨论
*我把学生成绩排名程序代码帖出来,供参考(只需稍加修改,就可以排名所有科目成绩)。希望有高手能用更简便高效的SQL查询替代。

*数据表student有字段:准考证号,sx,yw,yy,wl,hx(数学、语文、英语、物理、化学),sxmc,ywmc,yymc,wlmc,hxmc(各科相应名次)
*各科排名完成后,最终得到PMK.DBF
IF !USED("student")
    USE student
ENDIF
COPY TO pmk
USE in student
FOR ii=1 to 5
    USE pmk
    km=SUBSTR("sxywyyhxwl",2*ii-1,2) &&科名
    zfs=km-"mc"  &&各科名次
    SORT  ON &km /D to studentpm
    USE studentpm
    REPLACE all &zfs with RECNO()
    DO dpm    with km,zfs
    COPY TO pmk
    BROWSE fields &km,语文名次,&zfs,数学名次,英语名次,物理名次,化学名次
    use
NEXT
retu
PROCEDURE dpm
    PARAMETER cj,pm
n=0
nbak=0
cjbak=0
GO top
FOR i=1 to RECCOUNT()
    n=IIF(&cj=cjbak,n,i)
    REPLACE &pm with n
    cjbak=&cj
    nbak=n
    skip
next
ENDPROC

[[it] 本帖最后由 qjbzjp 于 2008-9-26 13:39 编辑 [/it]]
搜索更多相关主题的帖子: 学生 代码 排名 
2008-09-22 15:51
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
我试过许多方法,也用过将A数据表文件 index on ....to X, 然后Copy to B文件,将B文件排序结果放入到B文件的字段中。然后试过许多网上发的关于SQL语句、UPdate、Scan等,但没办法将这个排序结果字段更新到A文件中了,所以用了DOS下常用的笨办法来达到目的。
2008-09-22 21:18
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
三楼ibmlang_002的代码,运行时提示错误,去掉“ from b ”后,可以运行,但“a.排序”字段中置换了相同的数据。
以往我见到的排序代码,理论上应该没有问题,但实际运行总有问题,大多是字段中置换了同一个数据,又找不到问题所在。

四楼Tiger5392 的代码非常简练,排序正确。如果再把同分者并列名次考虑进去就更好了。

[[it] 本帖最后由 qjbzjp 于 2008-9-24 09:42 编辑 [/it]]
2008-09-23 21:18
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
我查了一下,三楼的代码应该没问题,而是版本问题。
我用的是8.0版VF,在帮助文件中UPDATE - SQL 命令中确实没有…from …
但9.0版就有了。
只不过搞不明白的是,7.0版有…from …,8.0版怎么会没有?一头雾水……
2008-09-24 10:23
快速回复:学生各科成绩排名代码的讨论
数据加载中...
 
   



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

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