作者在 2016-11-24 13:39:09 发布以下内容
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