首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MS Access中通过多个字段连接两个表

在MS Access中通过多个字段连接两个表
EN

Stack Overflow用户
提问于 2016-02-04 14:54:52
回答 1查看 47关注 0票数 0

我有两张桌子。其中一张列出了我商店的顾客号码、他们买的商品、他们买的日期以及他们支付的价格。

我有第二个表,其中列出了我的商店的客户号码、他们返回的商品、退货日期以及他们收到的信用。

显然,并不是所有的销售都有信用。

我想返回如下结果:

代码语言:javascript
复制
Customer1, Item1, Date, Price, Blank
Customer1, Item2, Date, Price, Credit
Customer1, Item3, Date, Price, Blank
Customer1, Item4, Date, Price, Blank
Customer2, Item1, Date, Price, Blank
Customer2, Item2, Date, Price, Blank
Customer2, Item3, Date, Price, Credit

等。

如果我加入了客户号上的表,它将返回我:

代码语言:javascript
复制
Customer1, Item1, Date, Price, Credit
Customer1, Item2, Date, Price, Credit
Customer1, Item3, Date, Price, Credit
Customer1, Item4, Date, Price, Credit
Customer2, Item1, Date, Price, Credit
Customer2, Item2, Date, Price, Credit
Customer2, Item3, Date, Price, Credit

如果我加入项目上的表并按客户号排序,它将返回gobbledygook。

我的想法是加入客户号码并在条件中使用IIf(Sales.Item1=Credits.Item1, Credit, 0),但是我得到了一个错误:“您试图执行一个查询.这不是聚合表达式的一部分”。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 03:25:18

假设您在没有销售的情况下将没有回报,请尝试以下查询:

代码语言:javascript
复制
SELECT Sales.Customer, Sales.Item, Sales.Sale_Date, Sales.Sale_Price, 
   Credits.Credit_Date, Credits.Credit_Price, 
   IIf(IsDate([Credits].[Credit_Date]),"Credit","Blank") AS Result 
   FROM Sales LEFT JOIN Credits ON (Sales.Customer = Credits.Customer) 
   AND (Sales.Item = Credits.Item);

根据需要在IIF报表(信用或空白)中定义您的值。您还可以隐藏字段Credits.Credit_Date、Credits.Credit_Price,因此输出将完全符合所需。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35204268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档