
asp 数据库里数据条目统计问题
我的数据库有三个表,一级计划表,二级计划表和三级计划表。二级计划表中的F_id=一级计划中的id,三级计划中的FF_id=二级计划中的subid。现在我统计各个表中的数目...
我的数据库有三个表,一级计划表,二级计划表和三级计划表。二级计划表中的F_id=一级计划中的id,三级计划中的FF_id=二级计划中的subid。现在我统计各个表中的数目,发现一级计划数目正确,二级计划和三级计划的数目只能统计第一条一级计划下面的,不知道是怎么回事?
<%
set rs=server.createobject("adodb.recordset")
sql="select * from 软件计划 where 计划完成时间 between #"&DateSerial(year1,month1,1)&"# and #"&DateSerial(year1,month1,31)&"# "
rs.open sql,connstr,1,1
if rs.eof then
%>
<tr><td>…</td></tr>
<%else
Dim totalput
totalput=rs.recordcount
do while i< maxperpage and not rs.eof
%>
<tr>
<td>…</td>
<td>…</td>
<td>…</td>
<td>…</td>
</tr>
<%
sql1="select * from subplan where F_id="&rs("id")&""
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,connstr,1,1
dim totalput2
totalput2=rs1.recordcount
do while not rs1.eof
%>
<tr>
<td>…</td>
<td>…</td>
<td>…</td>
</tr>
<%
sql2="select * from ssubplan where FF_id="&rs1("subid")&""
set rs2=server.createobject("adodb.recordset")
rs2.open sql2,connstr,1,1
dim totalput3
totalput3=rs2.recordcount
do while not rs2.eof
%>
<tr>
<td>…</td>
<td>…</td>
<td>…</td>
<td>…</td>
</tr>
接上面的代码
<%rs2.movenext
loop
rs1.movenext
loop
rs.movenext
loop
%>
二级计划是在一级计划的循环里,三级计划是在二级计划的循环里。
上面的描述有点错误,今天我仔细检查了一下,不是统计了第一条一级计划下面的二级和三级计划的数目,而是统计了最后一条一级计划下面的二级和三级计划的数目,有个网友说,是因为指针停在了rs.eof这个位置上,但是怎么改呢? 展开
<%
set rs=server.createobject("adodb.recordset")
sql="select * from 软件计划 where 计划完成时间 between #"&DateSerial(year1,month1,1)&"# and #"&DateSerial(year1,month1,31)&"# "
rs.open sql,connstr,1,1
if rs.eof then
%>
<tr><td>…</td></tr>
<%else
Dim totalput
totalput=rs.recordcount
do while i< maxperpage and not rs.eof
%>
<tr>
<td>…</td>
<td>…</td>
<td>…</td>
<td>…</td>
</tr>
<%
sql1="select * from subplan where F_id="&rs("id")&""
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,connstr,1,1
dim totalput2
totalput2=rs1.recordcount
do while not rs1.eof
%>
<tr>
<td>…</td>
<td>…</td>
<td>…</td>
</tr>
<%
sql2="select * from ssubplan where FF_id="&rs1("subid")&""
set rs2=server.createobject("adodb.recordset")
rs2.open sql2,connstr,1,1
dim totalput3
totalput3=rs2.recordcount
do while not rs2.eof
%>
<tr>
<td>…</td>
<td>…</td>
<td>…</td>
<td>…</td>
</tr>
接上面的代码
<%rs2.movenext
loop
rs1.movenext
loop
rs.movenext
loop
%>
二级计划是在一级计划的循环里,三级计划是在二级计划的循环里。
上面的描述有点错误,今天我仔细检查了一下,不是统计了第一条一级计划下面的二级和三级计划的数目,而是统计了最后一条一级计划下面的二级和三级计划的数目,有个网友说,是因为指针停在了rs.eof这个位置上,但是怎么改呢? 展开
2个回答
展开全部
因为rs2.recordcount 这个函数把指针移到了eof,所以你要在统计完后再重新读取数据集。
<%
sql2x="select * from ssubplan where FF_id="&rs1("subid")&""
set rs2x=server.createobject("adodb.recordset")
rs2x.open sql2x,connstr,1,1
dim totalput3
totalput3=rs2x.recordcount
sql2="select * from ssubplan where FF_id="&rs1("subid")&""
set rs2=server.createobject("adodb.recordset")
rs2.open sql2,connstr,1,1
do while not rs2.eof
%>
<%
sql2x="select * from ssubplan where FF_id="&rs1("subid")&""
set rs2x=server.createobject("adodb.recordset")
rs2x.open sql2x,connstr,1,1
dim totalput3
totalput3=rs2x.recordcount
sql2="select * from ssubplan where FF_id="&rs1("subid")&""
set rs2=server.createobject("adodb.recordset")
rs2.open sql2,connstr,1,1
do while not rs2.eof
%>

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询