ASP同数据库读两表关联取值问题?(在线急等,解决结贴。)

sayoo 2009-08-14 05:30:49
access数据库中有两表,表一名为“业务单”,结构为(ID 协议编号 收款情况);表二名为“记帐日报表”,结构为(ID 协议编号)。在页面中同时读取两表,当表二的协议编号等于表一的协议编号时,页面中rs出表一的收款情况,但由于表一协议编号有重复,要先将重复的筛选出一条,再取这条的收款情况rs出来,请问高手select语法上和rs时的语法上应该怎样表达?

<%
set SY_RS = server.createobject("adodb.recordset")
SY_SQL="select distinct 协议编号 from 业务单 Order by 客户名称 ASC"
SY_RS.Open SY_SQL,Conn,1,3
if not (SY_RS.bof and SY_RS.eof) then
do while not sy_rs.eof
%><%
if rs("协议编号")=SY_rs("协议编号") then
Response.Write(SY_rs("收款情况"))
end if
%><%
sy_rs.movenext
loop
end if
sy_rs.close
%>
以上是我写的读取第二个表与第一个表的关联,但系统报错,sql语句里用select distinct肯定是不对的,但如果用select * from时,rs出来的收款情况会根据表一协议编号相同的出来,比如协议编号相同的有3条,它会连续出RS出3个数据,请高手帮忙解决。
...全文
58 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mailbao 2009-08-14
忘了你補充條件,更改code如下:


<%
set SY_RS = server.createobject("adodb.recordset")
SY_SQL="SELECT a.收款情况 FROM 业务单 AS a INNER JOIN 记帐日报表 AS b ON a.协议编号=b.协议编号 GROUP BY a.协议编号,a.收款情况,b.ID,b.协议编号"
SY_RS.Open SY_SQL,Conn,1,3
if not (SY_RS.bof and SY_RS.eof) then
do while not SY_rs.eof
Response.Write(SY_rs("a.收款情况"))
SY_rs.movenext
loop
end if
SY_rs.close
set SY_rs=nothing
%>

回复
mailbao 2009-08-14

<%
set SY_RS = server.createobject("adodb.recordset")
SY_SQL="SELECT a.*,b.* FROM 业务单 AS a INNER JOIN 记帐日报表 AS b ON a.ID=b.ID GROUP BY a.ID,a.收款情况,b.ID,b.內容"
SY_RS.Open SY_SQL,Conn,1,3
if not (SY_RS.bof and SY_RS.eof) then
do while not SY_rs.eof
Response.Write(SY_rs("b.收款情况"))
SY_rs.movenext
loop
end if
SY_rs.close
set SY_rs=nothing
%>
回复
mkcat 2009-08-14
看不出问题 也等待高手回答 不过个人建议表名最好不要用中文 有时会出错
回复
sayoo 2009-08-14
问题补充.也就是说表一可能如下
ID 协议编号 收款情况
1 001 已收款
2 001 已收款
3 001 已收款
4 002 未收款

而表二只会是
ID 协议编号
1 001
2 002
现在要他们之前协议编号相同时,读其中的一个收款情况.请说明下SQL语句和RS语句上怎么表达,谢谢.
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告