我发现Access查询的结果与源数据表不一致。通过消除过程我已经确定问题与我的表加入有关,但我不明白为什么或如何解决它。为了保持这一点,我已经删除了所有,但是一个字段和一个从查询中加入我发现问题的位置。
查询1:有一个连接到另一个表,但我简化了查询,以便不返回任何字段,并且查询中没有条件。我简单地从" Data"中总结了一个字段。并忽略" 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读取和修改。
答案 0 :(得分:0)
为什么这会让你感到惊讶?显然,它表示State_Details.BenefitsState
中存在重复项。
运行以下查询:
select BenefitsState, count(*)
from State_Details
group by BenefitsState
having count(*) > 1;
如果将[Total Amount]
存储为浮点类型并且错误确实非常小,则存在另一种可能性。浮点运算的评估顺序可能有所不同,特别是当值的范围很大时。