表结构设计的不合理,造成了很多后遗症,排名次的代码论坛中有,你可以找一下。
你前面的帖子中最后结果的统计表的合理结构应该是:
班级
科目
科目编号
全班均分
优秀均分
综合均分
然后再从这个表中提取相应的班级进行排名次
你前面的帖子中最后结果的统计表的合理结构应该是:
班级
科目
科目编号
全班均分
优秀均分
综合均分
然后再从这个表中提取相应的班级进行排名次
[此贴子已经被作者于2017-10-28 09:30编辑过]

坚守VFP最后的阵地
程序代码:CREATE CURSOR TT (班级 C(2),科目 C(4),成绩 N(3))
INSERT INTO TT VALUES ("01","语文",85)
INSERT INTO TT VALUES ("02","语文",89)
INSERT INTO TT VALUES ("03","语文",67)
INSERT INTO TT VALUES ("04","语文",84)
INSERT INTO TT VALUES ("01","数学",75)
INSERT INTO TT VALUES ("02","数学",62)
INSERT INTO TT VALUES ("03","数学",67)
INSERT INTO TT VALUES ("04","数学",84)
SELECT *,00 名次 FROM TT ORDER BY 科目,成绩 DESC INTO TABLE MCTJ
mc=0 && 记录科目名次
ncj=0 && 记录上条记录成绩
nrs=1 && 记录单科科目的记录数
ckm="" && 记录上条记录的科目
SCAN
IF 科目!=ckm
STORE 1 TO nrs,mc
ELSE
IF 成绩!=ncj
mc=nrs
ENDIF
ENDIF
REPLACE 名次 WITH mc
nrs=nrs+1
ncj=成绩
ckm=科目
ENDSCAN
BROWSE
