2016-02-04 100 views
0

我有两个表格。其中一个列出了我店的客户编号,他们购买的商品,他们购买的日期以及他们支付的价格。通过MS Access中的多个字段连接两个表格

我有第二张表,列出了我的商店的客户编号,他们返回的项目,他们返回的日期以及他们收到的信用。

显然,并非所有的销售额都有积分。

我想返回的结果是这样的:

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 

如果我加入的客户号码表,它返回我:

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),但是我收到错误“您尝试执行查询......这不是聚合表达式的一部分。”

我在做什么错?

+0

我该如何更改Group By pulldown?没有其他选择似乎适用。 –

+0

摆脱西格玛摆脱了错误,但查询仍然返回垃圾。 –

+0

我确实解决了这个问题。谢谢你的帮助! –

回答

1

假设你不会有任何回报没有销售,尝试此查询:

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,所以输出将完全符合要求。