标题:关于查询的问题[已解决]
取消只看楼主
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
 问题点数:0 回复次数:8 
关于查询的问题[已解决]

表track里有字段id,orderid,sum,marktime,typeid
其中数据如:
id orderid sum marktime typeid
1 107 5000 2006-7-11 1
2 107 380 2006-7-12 2
3 107 1000 2006-7-12 1
4 107 2000 2006-7-14 3
......................
表parts里有字段id,typeno,productid................
如:
id typeno productid................
1 j-506 |3|, |4|
2 j-097 |3|
3 j-106 |4|
.......................
set rs3=server.CreateObject("adodb.recordset")
sql3="select * from parts order by id desc"
rs3.open sql3,conn,1,3
do while not rs3.eof
manage=rs3("productid")
dst="|"+trim(rs("productid"))+"|" //rs("productid")是从另个表中取的数据,这里的值是数字4
if instr(manage,dst)>0 then
%>
<tr bgcolor=#ffffff>
<td><%=rs3("typeno")%></td><td><%=rs3("name")%></td> //rs3("name")是parts表中的其他字段,这里不去管它
<%
for j=0 to i //通过其他计算已经知道这里i=16
jtime=rs("start")+j //rs("start")是从另个表中取的数据,这里的值是2006-7-11
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from track where orderid=107 and typeid="&rs3("id")&" and marktime="&jtime
rs2.open sql2,conn,1,3
if rs2.bof and rs2.eof then jsum=0 else jsum=rs2("sum") end if
%>
<td align=right><%=jsum%></td>
<%
next
%>
</tr>
<%
end if
rs3.movenext
loop
rs2.close
set rs2=nothing
rs3.close
set rs3=nothing

结果没有达到想要的效果
2006-7-11 2006-7-12 2006-7-13 2006-7-14.......................
j-506 0 0 0 0..............................
j-106 0 0 0 0..............................
..................
想要达到的效果为:
2006-7-11 2006-7-12 2006-7-13 2006-7-14.........................
j-506 5000 1000 0 0.............................
j-106 0 0 0 2000.............................
....................

请大虾帮忙看看问题出在哪里?

[此贴子已经被作者于2006-7-28 14:09:46编辑过]

搜索更多相关主题的帖子: sum 字段 marktime orderid typeid 
2006-07-27 13:02
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 
在线跪求,顶一下

Firever Zone
2006-07-27 13:24
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 

斑竹你在哪里


Firever Zone
2006-07-27 14:45
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 
以下是显示最上面一排日期的代码,我想应该可以这样加的吧
<%
i=rs("closetime")-rs("start") //rs("closetime")是另个表的取的数据。这里的值是2006-7-27
for j=0 to i
%>
<td><%=rs("start")+j%></td>
<%
next
%>

Firever Zone
2006-07-27 15:49
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 
确实写的复杂了点。因为本人刚入门没多少时间。如果有大大有比较简单的方法。希望能指教。谢谢

Firever Zone
2006-07-27 16:44
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 
谢谢greess兄,基本已经看懂了。现在在准备如果转化到我的程序里。是否实现应该下午就可以知道了。再谢!

Firever Zone
2006-07-28 09:46
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 
sql2="select * from track where orderid=107 and typeid="&b(j)&" and marktime='"&a(i)&"'"
rs2.open sql2,conn,1,3
标准类型不配。。。。
我改成
sql2="select * from track where orderid=107 and typeid="&b(j)&" and marktime=date()"
可以读出数据
改成
sql2="select * from track where orderid=107 and typeid="&b(j)&" and marktime="&a(i)
数据都为0了

够郁闷吧。。。

[此贴子已经被作者于2006-7-28 13:22:49编辑过]


Firever Zone
2006-07-28 13:21
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 

已经实现了,程序如下:
<!--#include file="inc/conn.asp"-->
<!--#include file="include/head.asp"-->
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from orders where id="&request("id")
rs.open sql,conn,1,3
set rs3=server.CreateObject("adodb.recordset")
sql3="select * from parts order by id desc"
rs3.open sql3,conn,1,3
%>
<table width=1500 border=0 cellspacing=1 cellpadding=1 align=center bgcolor=#000000>
<tr align=center bgcolor=#ffffff>
<td colspan=2><%=rs("orderno")%>订单报表</td>
<%
i=date()-rs("start")
for j=0 to i
%>
<td><%=rs("start")+j%></td>
<%
next
%>
<td>剩余数量</td>
</tr>
<%
do while not rs3.eof
manage=rs3("productid")
dst="|"+trim(rs("productid"))+"|"
if instr(manage,dst)>0 then
%>
<tr bgcolor=#ffffff>
<td><%=rs3("typeno")%></td><td><%=rs3("name")%></td>
<%
dsum=0
for j=i to 0 step -1
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from track where orderid="&request("id")&" and typeid="&rs3("id")&" and marktime=date()-"&j //这里是关键
rs2.open sql2,conn,1,3
if rs2.bof and rs2.eof then jsum=0 else jsum=rs2("sum") end if
%>
<td align=right><%=jsum%></td>
<%
dsum=dsum+jsum
next
%>
<td align=right><%=rs("plan")*rs3("ruler")-dsum%></td>
</tr>
<%
end if
rs3.movenext
loop
rs2.close
set rs2=nothing
rs3.close
set rs3=nothing
rs.close
set rs=nothing
%>
</table>
感谢大家的帮助,给了我很多启发

[此贴子已经被作者于2006-7-28 14:02:52编辑过]


Firever Zone
2006-07-28 13:58
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
得分:0 

写的是没问题的。估计是数据库中类型的问题引起的。谢谢你的帮忙。


Firever Zone
2006-07-28 15:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-80560-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.112737 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved