回复 15楼 whinda
谢谢,我感觉这样做仍然不能解决同分排名相同问题!

程序代码:CREATE CURSOR tt (数学 I, 数学排名 I, 语文 I, 语文排名 I)
INSERT INTO tt VALUES (100, 0, 90, 0)
INSERT INTO tt VALUES (60, 0, 100, 0)
INSERT INTO tt VALUES (80, 0, 100, 0)
INSERT INTO tt VALUES (100, 0, 90, 0)
INSERT INTO tt VALUES (60, 0, 100, 0)
INSERT INTO tt VALUES (80, 0, 100, 0)
INDEX on 数学 TAG 数学 DESCENDING
INDEX on 语文 TAG 语文 DESCENDING
排名("数学", "数学排名")
排名("语文", "语文排名")
SET ORDER TO
BROWSE
FUNCTION 排名(科目, 排名)
SET ORDER TO (科目)
n学分 = 0
n名次 = 1
n序号 = 1
SCAN
IF EVALUATE(科目) != n学分
n学分 = EVALUATE(科目)
n名次 = n序号
ENDIF
REPLACE (排名) WITH n名次
n序号 = n序号 + 1
ENDSCAN
ENDFUNC
程序代码:SELECT Scoresort
SCAN
SELECT COUNT(T2.数学)+1 名次 FROM Scoresort T2 WHERE T2.数学>Scoresort.数学 INTO CURSOR tmp
REPLACE 数学排名 WITH tmp.名次 IN "Scoresort"
SELECT COUNT(T2.语文)+1 名次 FROM Scoresort T2 WHERE T2.语文>Scoresort.语文 INTO CURSOR tmp
REPLACE 语文排名 WITH tmp.名次 IN "Scoresort"
ENDSCAN
BROWSE
