0

数据

我在 MS Access 2013 工作。我有两个表('Import' 和 '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. 我试过删除“分组依据”声明
  3. 我删除了“DISTINCTROW”功能

我已经搞砸了两天了,我没有想法。非常感谢您对这个问题有新的看法!

谢谢!

4

1 回答 1

1

你没有任何聚合函数,所以去掉 GROUP BY 子句。同时删除 DISTINCTROW。

您的Import-Pay表应该有一个Primary Key。在 SELECT 列表中包含此列(如果它是复合键,则为所有列)。

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

于 2015-12-10T14:00:26.873 回答