2017-03-07 55 views
0

我發現我的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進行一些基本的讀取和修改。

回答

0

爲什麼這會讓你感到驚訝?顯然這是說在State_Details.BenefitsState有重複。

運行以下查詢:

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

如果[Total Amount]存儲爲浮點類型和錯誤是真的,真的小另一可能性是存在的。浮點運算的評估順序可能會有所不同,特別是當值的範圍很大時。

+0

明白了。謝謝。 – user3670204