Office中国论坛/Access中国论坛

标题: 我快疯了!如何用select将3个表连在一起? [打印本页]

作者: key7000    时间: 2002-12-15 09:26
标题: 我快疯了!如何用select将3个表连在一起?
给xsk(销售库)加上dh(电话)、dz(地址),3表都有bm字段
xsk包含多条记录,怎样将3表通过bm连起来。
select xsk.*,dh.tele,dz.add from xsk left join .......
怎样做?救命!!!!!

作者: Trynew    时间: 2002-12-15 16:51
我用Access的原因之一(我们用Oracle),就是因为他能可视化的建立比较复杂的查询,包括交叉查询和动作查询。Access的Sql语句是“做”出来,不是“写”出来的。
Access做出来的查询不是标准SQL语句。像你这种情况,在查询上放上三个表,做好连接(或者已建立关系),拖两下就OK的拉。
不过xsk上得有dh_bm,dz_bm字段,分别与dh、dz表的bm字段连接,xsk的bm只是标识销售记录。
作者: key7000    时间: 2002-12-16 01:15
谢谢,不过总是感觉access中的select不如vf中的好用
作者: key7000    时间: 2002-12-16 01:23
标题: 麻烦版主再看一下我的另两个帖子
我用子查询为何死机?not in

SELECT *
FROM kh2002
WHERE mc not in(select mc from kh2001);
在kh2002中找出kh2001不包含的名单,为何死机,在foxpro中可以实现。在access中如何实现?
本人感觉access中的select 太难用了,这也不行,那也不行,头都大了。

如何用一条select语句将3个表中的记录一次输出?
1、有3个表分别存放着1、2、3、月份发展的客户名单,三个表的结构完全一致。想用一条select语句将3个月的客户名单显示出来,能否实现?

2、今年3个月的客户名单中不包含上年的客户名单(也就是今年一季度新发展的客户名单),如何用一条select实现?
3、用分组命令group加count()能够统计客户的购买次数,但是我用access中的select统计时*号无法使用,例如:表xsk中含有mc(客户名称)、dh(电话)、xse(销售额)
select *,count(mc),sum(xse) from xsk group by mc
提示:“不能将以选定‘*’的字段中组合”。这样就无法显示客户电话了,(在foxpro中的select可以)。将*号改为dh,显示:"试图执行合计函数中不包含特定表达示‘dh’的查询"。感觉不方便,怎样实现。








[此贴子已经被作者于2002-12-15 17:22:49编辑过]


作者: Trynew    时间: 2002-12-16 05:56
1、可以用Union 连接做成联合查询显示;
2、可以用SELECT * FROM kh2002 WHERE mc not in(select mc from kh2001);
   语句没问题,可能是表或数据的问题。
3、你改为select mc,dh,count(mc),sum(xse) from xsk group by mc,dh试一下。
或者是:select mc,first(dh),count(mc),sum(xse) from xsk group by mc.
作者: key7000    时间: 2002-12-16 08:36
谢谢版主!
第3个问题按你的说法实验通过
not in 仍然不行,在foxpro中的select可以,算了不试了。
联合查询实验通过
太感谢了!

作者: key7000    时间: 2002-12-16 08:52
2、今年3个月的客户名单中不包含上年的客户名单(也就是今年一季度新发展的客户名单),如何用一条select实现?
这个问题没说清楚,我再把第2个问题解释一下。有3个库(2002年1月,2月,3月),还有一个2001年的总库,4个库结构一样,都含有mc(名称)字段。想找出3个月份库中有,2001年总库中没有的客户,想用一条select解决。
先用union连接今年3个月的库,再not in 2001年库可以吗?
或者用3个月的库union后,右连接2001年库可以吗?

[此贴子已经被作者于2002-12-16 0:51:54编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3