我发现我的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进行一些基本的读取和修改。
发布于 2017-03-07 14:49:16
为什么这会让你吃惊?显然,它是说,在State_Details.BenefitsState
中有重复的。
运行以下查询:
select BenefitsState, count(*)
from State_Details
group by BenefitsState
having count(*) > 1;
如果[Total Amount]
存储为浮点类型,并且错误非常非常小,则存在另一种可能性。浮点运算的计算顺序会产生影响,特别是在取值范围很大的情况下。
https://stackoverflow.com/questions/42651227
复制相似问题