求个变量写法

ykxiaolv 2006-11-01 07:43:17
一表格循环读出数据库(名称=<%=MC%> 数量=<%=sl%> )
名称 数量
A 1
B 2
C 3
C 5
A 1
要求显示这样表格。不用SQL(SUM)语句相加,用ASP读取(找到名称A后相加数量、B后相加数量...)
名称 数量
A 2
B 2
C 8

...全文
225 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lailuboy 2006-11-02
  • 打赏
  • 举报
回复
每个要计算的列定义一个变量,在循环取各个字段时,把各个字段累加如定义变量加A字段,则可以
dim SumA
SumA=0
while no rs.eof
SumA=SumA+rs("A")
rs.movenext
wend
juakey 2006-11-02
  • 打赏
  • 举报
回复
dim a,b,name,sum,rs1,rs2

set rs1=server.createobject("adodb.recordset")
set rs2=server.createobject("adodb.recordset")
sql = "SELECT mc,sl FROM a"
rs1.open sql,conn,3,3
rs2.open sql,conn,3,3
a = 0
b = " "
while rs1.eof
name = rs1("MC")
sum=0
a = rs("MC")&','
if instr(a,b) = 0 then
while rs2.eof
if name = rs2("MC") then
sum = sum + rs2("sl")
end if
wend
rs2.movefirst
response.write name
response.write " "
response.write sum
response.write "<br>"
b = b&a
end if
wend

没测试 有效问题自己修改
这样应该可以吧 没改语句 开始开了2次记录集
cxc3214 2006-11-02
  • 打赏
  • 举报
回复
建议在数据库+上一列,关联列。
A 1 a1
B 2 a1
C 3 b1
C 5 b1
A 1 b1
这样问题就明朗多了吧。
SQL修改下。
ykxiaolv 2006-11-02
  • 打赏
  • 举报
回复
感谢Lailuboy() 但还是没有达到我目的
我的表一本来就是个嵌套循环,名称没法排序了。表一结构详细是这样
a1 3
A 1
B 2
b1 9
C 3
C 5
A 1

a1行是第2行和第3行的值和
b1行是后3行的和
循环记录里面再嵌套循环数组查询,这个该怎么做?
lailuboy 2006-11-02
  • 打赏
  • 举报
回复
输出第一个表时根据名称排一下序,然后一条记录一条记录查,如果字段名与前一个名称不同的话就显示其名称,且输出和,然后和又初始为零,如果字段名与前一个名称相同数就加,
代码如下:
dim suma
dim Name
suma=0
name=""
while not rs.eof
if rs("mc")<>name then
if name="" then '是第一条
name=rs("mc")
suma=suma+rs("sltotal")
else
response.write name
response.write suma
name=rs("mc")
suma=rs("sltotal")
end if
else
suma=suma+rs("sltotal")
end if
rs.movenext
wend
response.write name
response.write suma

还有一个解决办法就用数组了。循环记录里面再嵌套循环数组查询,我不说你应该明白我的意思吧
ykxiaolv 2006-11-02
  • 打赏
  • 举报
回复
rs.recordcount是记录数,不是我所求的数量?
班门弄斧 2006-11-02
  • 打赏
  • 举报
回复
用rs.recordcount来计算同一名称的数量
ykxiaolv 2006-11-02
  • 打赏
  • 举报
回复
上楼的做法好像行不通
dim SumA
SumA=0
while no rs.eof
SumA=SumA+rs("A")
rs.movenext
wend


SumA 是最后读取的数量 SUMA=12
那就是下表数量都是12
A 12(需要显示2)
B 12(需要显示2)
C 12(需要显示8)



ykxiaolv 2006-11-01
  • 打赏
  • 举报
回复
多谢上面的回复
A 1
B 2
C 3
C 5
A 1

这个表本来就是很复杂的一个SQL语句多层GROUP和SUM出来的

名称 数量
A 2
B 2
C 8
这个表用SQL无法SUM,所以就需要找名称列求和
txz2003 2006-11-01
  • 打赏
  • 举报
回复
不明白楼主的目的,既然都group出来了,自然各个名称的和也就求出来了,为什么还要单独累加呢,楼主是不是还有其他方面的深意呀!

sql="SELECT mc, Sum(sl) AS sltotal FROM a GROUP BY mc"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
do until rs.eof
response.write "<tr><td>"&rs("mc")&"</td><td>"&rs("sltotal")&"</td></tr>"
rs.movenext
loop
rs.close
ykxiaolv 2006-11-01
  • 打赏
  • 举报
回复
具体一点?
stou 2006-11-01
  • 打赏
  • 举报
回复
每一个定义一变量,显示的时候累加
ykxiaolv 2006-11-01
  • 打赏
  • 举报
回复
第二个表名称已经GROUP列出,只求数量

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧