create cursor test ; ( Student I, ; English I, ; Maths I, ; Science I, ; Total I, ; Rank I ; ) insert into test values(5, 0,0,0, 489, 0) insert into test values(4, 0,0,0, 492, 0) insert into test values(3, 0,0,0, 391, 0) insert into test values(2, 0,0,0, 391, 0) insert into test values(1, 0,0,0, 389, 0) select cast(0 as I) as RankTmp,; Total ; from test ; into cursor tmp ReadWrite ; group by 1, 2 ; order by 1 desc, 2 desc repl Ranktmp with recno() all in tmp update test ; set Rank = tmp.RankTmp ; from tmp ; where (test.Total == tmp.Total ) selec * from Test order by Rank