成绩排名问题

数据表问题 | 2016-11-24 13:39:09 | 阅读 1374 次 | 评论(0)
CREATE CURSOR Cj (班级 C(5),姓名 C(10),总分 N(4),班级名次 N(6),年级名次 N(6))
=RAND(-1)
FOR I=1 TO 1000
    FOR J=1 TO 50
        INSERT INTO Cj (班级,姓名,总分) VALUES ("B"+PADL(I,4,"0"),SYS(2015),RAND()*100)
    ENDFOR
ENDFOR
INDEX ON 班级-STR(总分,4) TAG px DESCENDING
* 班级名次
mc=1 && 记录班级名次
nzf=0 && 记录上条记录的总分
cbj="" && 记录班级名称
nrs=1 && 记录班级人数
SCAN
    IF ALLTRIM(班级)!=cbj 
        STORE 1 TO nrs,mc
    ELSE
        IF 总分!=nzf
            mc=nrs
        ENDIF
    ENDIF
    REPLACE 班级名次 WITH mc
    nrs=nrs+1
    nzf=总分
    cbj=ALLTRIM(班级)
ENDSCAN
SET ORDER TO
* 年级名次
INDEX ON -总分 TO px
mc=0
nzf=0
nrs=1
SCAN
    IF 总分!=nzf
        mc=nrs
    ENDIF
    REPLACE 年级名次 WITH mc
    nrs=nrs+1
    nzf=总分
ENDSCAN
BROWSE
RETURN
文章评论,共0条
游客请输入验证码
浏览234007次
最新评论
  • cstdio:ooooooo
  • sdta:从VFP入手也不错
  • yuanhouwen:尊敬的sdta大神:作为一个编程外行,看到你关于操控EXCEL的编程程序我觉得特别神奇,想向你...