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