求教高手排序问题
我一新手,学做成绩分析时,需把排序写入数据库,使用以下办法写入时<% '排序降序处理
set conn=Server.Createobject("adodb.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("student.mdb")
Set rsList = server.CreateObject("Adodb.recordset") '存储所有成绩记录
Set rsClass = server.CreateObject("Adodb.recordset") '存储当前班次的记录
sql = "select 语文,班级,成绩,班序,校序 from 学生成绩"
rsList.open sql,conn,1,3
Do While Not rsList.eof
'按成绩和考试项目进行班级排名次处理
sql2 = "select DISTINCT 成绩 from 学生成绩 where 成绩> " & rsList("成绩") & " and 语文=" & rsList("语文") & " and 班级=" & rsList("班级")
rsClass.open sql2,conn,1,1
rsList("班序") = rsClass.recordcount + 1
rsList.update
rsClass.close
'按成绩和考试项目进行年级排名次处理
sql2 = "select DISTINCT 成绩 from 学生成绩 where 成绩> " & rsList("成绩") & " and 语文=" & rsList("语文")
rsClass.open sql2,conn,1,1
rsList("校序") = rsClass.recordcount + 1
rsList.update
rsClass.close
rsList.movenext
Loop
rsList.close
conn.close
Set rsList = Nothing
Set rsClass = Nothing
Set conn = Nothing
response.write("排序降序处理成绩成功,数据库已安全关闭!")
%>
结果是:
语文 班级 成绩 级位 班位
1 1 34 1 1
1 1 45 2 2
1 1 45 2 2
1 2 67 3 1
1 2 76 4 2
2 1 56 4 3
2 1 45 2 1
2 1 54 3 2
2 2 43 1 1
2 2 76 5 2
这种完全中国式排序,在数据多时不太适合学校里的习惯。学校中更习惯EXCEL中的办法。像以下这样:
姓名 总分 班序 按以上办法的排序
李四 100 1 1
张三 100 1 1
王五 90 3 2
周六 90 3 2
郑七 85 5 3
我想得到第一种排序的结果,即:1,1,3,3,5 而不是上面那种排序:1,1,2,2,3
如高手能赐教,不胜感谢之至!
想了好久,问题已解决!
[ 本帖最后由 syzycd 于 2012-3-25 09:15 编辑 ]