ASP给成绩排名(排序)的方法,要求分数相同的成绩名次相同


在用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
%>


[本日志由 随然 于 2010-03-07 10:56 PM 编辑]
上一篇: 教师给学生的毕业赠言100句
下一篇: 学习三部曲之一:学生为什么学习不好?
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP 网页
相关日志:
评论: 0 | 引用: 0 | 查看次数: 18011
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1 字 | UBB代码 关闭 | [img]标签 关闭