Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9156687
  • 博文数量: 187
  • 博客积分: 7517
  • 博客等级: 少将
  • 技术积分: 1981
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-20 18:51
文章分类

全部博文(187)

文章存档

2015年(3)

2013年(4)

2012年(20)

2011年(2)

2010年(96)

2009年(14)

2008年(47)

2007年(1)

我的朋友

分类: 系统运维

2010-05-16 23:17:53

在用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
%>
阅读(1314) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~