如何防止从Access查询结果中删除重复记录?

时间:2015-12-10 13:16:41

标签: group-by duplicates ms-access-2013 ms-query right-join

数据

我在MS Access 2013中工作。我有两个表格('导入'以及' Import-Pay')。我有一个结合两者数据的查询。

Import-Pay包含来自客户的交易数据,其中包括偶尔的重复交易记录(例如:客户购买+ 50美元,客户退货 - 50美元,客户更改心态并再次购买+ 50美元)。它很少见,但它发生了。我的问题是,在创建我的客户账单报表(查询)时,由于客户只记录交易中的销售日期,我最终在Import-Pay表中记录了两条+50美元的记录。

查询

我正在查询交易数据,并通过以下查询将其与客户的二级表信息结合起来:

SELECT DISTINCTROW Import.[ACCOUNT#] AS [ACCOUNT#], [Import-Pay].[Account Number], [Import-Pay].[Name], [Import-Pay].[P TRANS DT], [Import-Pay].[P Trans Amt], [Import-Pay].[Total Account Balance]
FROM Import RIGHT JOIN [Import-Pay] ON Import.[CD#] = [Import-Pay].[Account Number]
GROUP BY Import.[ACCOUNT#], [Import-Pay].[Account Number], [Import-Pay].[Name], [Import-Pay].[P TRANS DT], [Import-Pay].[P Trans Amt], [Import-Pay].[Total Account Balance];

我的问题

这些表已加入,所以我的' Import-Pay'表格应该显示...但由于某种原因,在查询运行后,Import-Pay的重复记录会丢失,从而给我一个不同的总数[Trans Amt]。

疑难解答

  1. 我已经仔细检查了我的桌子加入,以确保不是问题。
  2. 我已尝试删除' Group By'声明
  3. 我已经删除了' DISTINCTROW'功能
  4. 我现在已经搞乱了两天,而且我没有想法。对这个问题有一套新的眼睛会非常感激!

    谢谢!

1 个答案:

答案 0 :(得分:1)

您没有任何聚合函数,因此请删除GROUP BY子句。同时删除DISTINCTROW。

您的Import-Pay表格应该包含主键。在SELECT列表中包括此列(如果它是复合键,所有列)。

如果它没有主键,请创建一个(自动编号列工作正常)。

相关问题