Office中国论坛/Access中国论坛

标题: [求助] 如何使用left join,我使用时数据丢失了 [打印本页]

作者: tudozero    时间: 2019-2-25 21:19
标题: [求助] 如何使用left join,我使用时数据丢失了
小弟是access新手,有问题,多方查询仍不得要领.
特在此向各位求教,请求帮助,感恩!
access数据库中有两个表格,分别为tablea和tableb.
下面是tablea的表格 (图1)
[attach]63240[/attach]

下面是tableb的表格(图2)
[attach]63241[/attach]

我希望得到这样的结果图3)
[attach]63242[/attach]

建立了查询,SQL语句如下:
SELECT tablea.客户,tablea.所在地区,count(交易年度) as 交易次数,sum(交易金额) as 累计交易金额
from tablea left join tableb on tablea.客户=tableb.客户
where 特性="大号"
group by tablea.客户,tablea.所在地区;

或者使用这样的语句
SELECT tablea.客户, tablea.所在地区, Count(tableb.交易年度) AS 交易次数, Sum(tableb.交易金额) AS 累计交易金额
FROM tablea LEFT JOIN tableb ON tablea.客户 = tableb.客户
GROUP BY tablea.客户, tablea.所在地区,tableb.[特性]
having (tableb.[特性]="大号")



但得到的是这样的结果图4)
[attach]63243[/attach]

请求各位的帮助,我要如何做才能得到图3的结果.
请求指教,感恩!

作者: Henry D. Sy    时间: 2019-2-26 10:59
王四,王七 都没有大号,你设定了条件为大号,当然就不会显示出来了。

作者: Henry D. Sy    时间: 2019-2-26 11:15

  1. SELECT tablea.客户, tablea.所在地区, A.次数, A.总额
  2. FROM tablea LEFT JOIN (
  3.        SELECT tablea.客户, Count(tableb.交易年度) AS 次数, Sum(tableb.交易金额) AS 总额
  4.        FROM tablea LEFT JOIN tableb ON tablea.客户 = tableb.客户
  5.        WHERE (((tableb.特性)="大号")) GROUP BY tablea.客户)  AS A
  6.        ON tablea.客户 = A.客户
复制代码

作者: tudozero    时间: 2019-2-26 11:42
感谢版主,确实解决了,感恩!


作者: Henry D. Sy    时间: 2019-2-26 21:20
tudozero 发表于 2019-2-26 11:42
感谢版主,确实解决了,感恩!

3楼的语句是在你的查询基础上修改的(被你误导了),

作者: Henry D. Sy    时间: 2019-2-26 21:21
其实不用这么复杂

作者: Henry D. Sy    时间: 2019-2-26 21:21
  1. SELECT tablea.客户, tablea.所在地区, A.次数, A.总额
  2. FROM tablea LEFT JOIN
  3.                      (
  4.                        SELECT tableb.客户, Count(tableb.ID) AS 次数, Sum(tableb.交易金额) AS 总额
  5.                        FROM tableb
  6.                        WHERE (((tableb.特性)="大号"))
  7.                        GROUP BY tableb.客户
  8.                                             ) AS A
  9.                        ON tablea.客户 = A.客户
复制代码

作者: Henry D. Sy    时间: 2019-2-26 21:21
晕,论坛怎么自动发送了




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