vb从sql得到五个数来进行排序

来源:百度知道 编辑:UC知道 时间:2024/09/20 14:21:18
bc(0)="甲"
bc(1)="乙"
bc(2)="丙"
bc(3)="丁"
bc(4)="戊"
for i=0 to 4
set rs=server.CreateObject("ADODB.RecordSet")
set rs.ActiveConnection=conn
rs.CursorType=3
sql="SELECT sum(燃料卸煤量) FROM XZB_JZJX4 WHERE (YEAR(日期) = '"&years&"' AND MONTH(日期) = '"&months&"' AND 班次名称 = '"&bc(i)&"')"
rs.open sql,conn
if rs.eof and rs.bof or isnull(rs.fields(0).value)then
else
rl4(i)=rs.fields(0).value
end if
rs.close
next
以上是得到5个数的代码段。

现在就是要排序的到得rl4(0),rl4(1),rl4(2),rl4(3),rl4(4)这五个数来排序,第一名给3分,第二名给1.5分,以后都不的分。并且要是其中有相同的数时,分数要给一样的,若都为0就不评分。

得到的数要放入表格中像这样:
完成值 得分 完成值 得分 完成值 得分 完成值 得分 完成值 得分
3 1.5 3 1.5 1 0 5 3 2 0
mc(0,i)=pa("sl") 这句问题了 在对应所需名称或序数的集合中,未找到项目。

<%
Dim sql:sql="SELECT 班次名称,sum(燃料卸煤量) as xml FROM XZB_JZJX3 WHERE YEAR(日期)='"&years&"' AND MONTH(日期)='"&months&"' group by 班次名称 order by sum(燃料卸煤量) desc"
set pa=conn.execute(sql)
i=0
jf=4.5
dim mc()
do while not pa.eof
Redim Preserve mc(1,i)
mc(0,i)=pa("sl")
if ls<>pa("sl") then
ls=pa("sl")
if jf<>0 then jf=jf-1.5
end if
mc(1,i)=jf
i=i+1
pa.movenext
loop
pa.close
set pa=nothing

for i=0 to ubound(mc,2)
response.write mc(0,i)&" "
response.write mc(1,i)&" "
next
%>

先排序
for i=0 to 3
for j=1 to 4
if r14(i)<r14(j)
temp =r14(i)
r14(i)=r14(j)
r14(j)=temp
end if
next j
next i
r14(0)=3
r14(1)=1.5
sql="insert into table (...) values(...)"
rs.open sql,conn