回复 10楼 sdta
感谢10楼的鼓励
用VFP6,简单点
use cjk
inde on -tot1 to ls **总分倒排,分数大的在前,小的在后
copy to pmb1 &&必须生成物理库(新库,才能产生新的记录号),分数最高的排在庫的第一条记录
SELECT 2
use pmb1
Y='0001' && 分数最高者名次(mch)为1
X=tot1 &&把最高分先赋于x
FOR I=1 TO RECCOUNT()
GO I
REPLACE MCh WITH IIF(tot1=X,Y,PADL(ALLTRIM(STR(RECNO(),4,0)),4,'0'))&&关鍵是iif里面的判断(刚打开表时。表中的总分=循环外的赋值,名次为“0001”,如果不等则用新的名次号,新的名次号用函数转化后的记录号
Y=MCh &&再把当前的一条记录的名次号赋于y
X=tot1 &&再把当前的一条记录的成绩赋于x,然后再去比较I=2
ENDFOR
[此贴子已经被作者于2017-8-2 12:56编辑过]