主题:2个表 匹配的问题
tqyb
[专家分:0] 发布于 2008-03-27 09:08:00
有个简单的问题
access数据库 data.mdb
如有2个表
A表 2个字段 号码 名称 (可能会多次重复)
B表 2个字段 名称 数量
想在ASP文件里生成一个表格根据A表顺序,可能会重复显示,显示 号码 名称 数量
如何写asp SQL 语句呢。
谢谢
回复列表 (共12个回复)
沙发
a97191 [专家分:4040] 发布于 2008-03-27 09:25:00
declare @a table(号码 char(10),名称 char(10))
insert @a select 1,'aaa'
union all select 10,'bbb'
union all select 10, 'bbb'
union all select 11, 'ccc'
declare @b table(名称 char(10),数量 char(10))
insert @b select 'bbb',2
union all select 'ccc',3
select a.号码,a.名称,b.数量 FROM @a a INNER JOIN @b b ON a.名称=b.名称
板凳
tqyb [专家分:0] 发布于 2008-03-27 09:55:00
谢谢
如果我想用这种形式的,好像一直不行
<% set rsc=server.createobject("adodb.recordset")
sql="select * from b where 名称="&名称&" "
rsc.open sql,conn,3,2
%>
<%=rsc("数量")%>
3 楼
martine [专家分:4950] 发布于 2008-03-27 10:59:00
应该可以, <% set rsc=server.createobject("adodb.recordset")
sql="select * from b where 名称="&名称&" "
rsc.open sql,conn,3,2
%>
a=<%=rsc("数量")%>再打开另个表
<% set rsc1=server.createobject("adodb.recordset")
sql="select * from b where 名称="&名称&" "
rsc1.open sql,conn,3,2
%>
b<%=rsc1("数量")%>
交换ab
4 楼
tqyb [专家分:0] 发布于 2008-03-27 12:14:00
就是因为不行
可能是不是 因为 A表 里面名称会有多条相同的。
有办法解决么?
5 楼
a97191 [专家分:4040] 发布于 2008-03-27 13:51:00
不明白你要得到的结果是什么?如果是不重复用
select *from (select a.号码,a.名称,b.数量 FROM @a a INNER JOIN @b b ON a.名称=b.名称) c group by 号码,名称,数量
6 楼
tqyb [专家分:0] 发布于 2008-03-28 09:01:00
会重复引用。 用2个表都用这样写去应用,用名称匹配名称 就会有问题。
如果我把B表中 名称改成号码,用号码去匹配就正常。
不知道是为什么
<% set rsc=server.createobject("adodb.recordset")
sql="select * from b where 名称="&名称&" "
rsc.open sql,conn,3,2
%>
a=<%=rsc("数量")%>
7 楼
a97191 [专家分:4040] 发布于 2008-03-28 12:48:00
sql="select * from b where 名称="&名称&" "
这名一看就错,应为
sql="select * from b where 名称='"&名称&"'"
8 楼
tqyb [专家分:0] 发布于 2008-03-28 13:27:00
谢谢,可是还不行
BTW
多一个 ' 和没有 ' 有什么区别呀?
9 楼
a97191 [专家分:4040] 发布于 2008-03-28 15:44:00
你这个“名称”是怎么赋值的,一般都很少用中文作变量
10 楼
tqyb [专家分:0] 发布于 2008-03-28 15:49:00
access 建表的时候 类型选 文本
在asp里面 没有定义
我来回复