回复 15楼 whinda
谢谢,我感觉这样做仍然不能解决同分排名相同问题!
回复 14楼 taifu945
谢谢,您提交的结果已经满足我的要求了,只是我没看太明白怎么实现的!
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