在用ASP制作成绩分析系统的时候,用到了很多的ASP函数,但就是没有成绩排名的函数,所以自己写了一个能排名的程序,供大家参考。我也想了几个能分析出一个分数在所有分数中占的位置或名次,想了半天还是觉得下面的办法来得简单一些,运算要快一些。
使用ASP给数据库中的成绩进行排名,要求分数相同的成绩名次相同。
实现思路:将成绩按从大到小排列,第一个数的名次写入1,然后循环,判断第二个数与第一个数是否相等,相等则写入相同的名次,不相等则名次加1,再循环……
<%
'为班级排名
j=0
i=0
thesame=0
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select stu_no,cj_all from student where class_no="&banji&" order by cj_all desc"
rs.open sql,conn,1,1
do while not rs.eof
'如果分数相同,则名次相同。如:两个并列第一名,则没有第二名,下一个为第三名
if rs("cj_all")=thesame then
i=i
j=j+1
else
i=i+j+1
j=0
end if
thesame=rs("cj_all")
sql="update student set cj_banxu="&i&" where stu_no='"&rs("stu_no")&"'"
conn.execute(sql)
rs.movenext
loop
rs.close
%>
阅读(1376) | 评论(0) | 转发(0) |