学生各科成绩排名代码的讨论
*我把学生成绩排名程序代码帖出来,供参考(只需稍加修改,就可以排名所有科目成绩)。希望有高手能用更简便高效的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]]