访问加入导致结果错误

问题描述:

我发现我的Access查询的结果不符合源数据表。通过消除过程,我确定这个问题与我的表连接有关,但我不明白为什么或如何解决它。为了简单起见,我已经消除了所有的问题,但是查询中的一个字段和一个联接是我发现问题的地方。访问加入导致结果错误

查询1:有一个连接到另一个表,但我简化了查询,以便不返回任何字段并且查询中没有条件。我只是从“数据”中总结单个字段并忽略“State_Details”。

SELECT Sum(Data.[Total Amount]) AS [SumOfTotal Amount] 
FROM Data LEFT JOIN State_Details ON (Data.BenefitsState = State_Details.BENEFITS_STATE) 
AND (Data.ClientNum = State_Details.CLIENT_NUM); 

问题2:我取下加入并执行相同的总和。

SELECT Sum(Data.[Total Amount]) AS [SumOfTotal Amount] 
FROM Data; 

这两个查询返回的结果稍有不同。我之前没有遇到过这个问题,也不知道为什么这个连接不能正常工作或如何解决。任何见解,将不胜感激。注意:我对SQL不是很熟悉。我使用Access中的Design视图,但可以对SQL进行一些基本的读取和修改。

为什么这会让你感到惊讶?显然这是说在State_Details.BenefitsState有重复。

运行以下查询:

select BenefitsState, count(*) 
from State_Details 
group by BenefitsState 
having count(*) > 1; 

如果[Total Amount]存储为浮点类型和错误是真的,真的小另一可能性是存在的。浮点运算的评估顺序可能会有所不同,特别是当值的范围很大时。

+0

明白了。谢谢。 – user3670204