2017-03-07 7 views
0

アクセスクエリの結果がソースデータテーブルと一致しないことがわかりました。削除のプロセスを通じて、私の問題はテーブルジョインに関係していると判断しましたが、それを解決する理由や解決方法がわかりません。このシンプルさを保つために、私はすべてを削除しましたが、1つのフィールドと1つはクエリからどこに問題があるのか​​を示します。結果にエラーが発生するアクセス結合

クエリ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; 

2つのクエリは、わずかに異なる結果を返します。私はこれまでにこのようなことに遭遇しておらず、なぜこの参加が正しく機能していないのか、どのように解決するのか分かりません。どんな洞察にも感謝します。注:私はSQLにあまり慣れていません。私はAccessでデザインビューを使用していますが、SQLの基本的な読み込みと変更を行うことができます。

答えて

0

なぜこれはあなたを驚かせるでしょうか?明らかに、State_Details.BenefitsStateには重複があると言われています。

を実行し、次のクエリは:[Total Amount]浮動小数点タイプとして格納され、エラーが本当に、本当に小さい場合

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

別の可能性が存在します。浮動小数点演算の評価の順序は、特に値の範囲が大きい場合に違いを生む可能性があります。

+0

これが完成しました。ありがとう。 – user3670204

関連する問題