2017-02-23 98 views
1

我有一個SUPER簡單查詢。沒有加入,什麼都沒有。不過出於某種原因,我的總和翻了一番。查詢很簡單:即使只有一行數據,SQL SUM也會加倍

SELECT SUM(ORDER_AMT) AS Total 
FROM ORDERS 
WHERE CUSTOMER = '123' 
GROUP BY CUSTOMER. 

我希望看到1000(ORDER_AMT爲這個客戶是1000和他們只有在Orders表中的一個記錄),但我得到2000。如果我這樣做:

SELECT * FROM ORDER WHERE CUSTOMER = '123' 

我只得到數據的單一行和ORDER_AMT值是1000(我正在尋找一個和唯一的原因是,這是一個存儲過程和其他客戶的部分可能有多個訂單,所以我真的想爲他們的總和)。

有沒有人遇到過這個?

+5

是訂單和訂單兩個不同的表?或者是一個錯字? –

+0

'ORDER_AMT'的數據類型是什麼? – str

+0

正如@KarthikGanesan指出的那樣 - 如果沒有拼寫錯誤,那麼您很可能在數據庫中擁有此表的兩個不同副本 - 或該名稱的DataView。 – RuDevel

回答

0

如果您使用sum()函數,則不需要分組。 sum()函數已經將返回表中的所有內容彙總在一起。

0

我想感謝大家在這裏的幫助。一旦我去尋找模式,我意識到我所查詢的內容並不在表格中。我在意見中發現了它。深入研究視圖的設計,我能夠直接提取所需的值(從視圖查詢中的實際支付表中取出)並繞過視圖。仍然不確定發生了什麼,但是現在我從其他地方獲得準確的數據,我將放棄它。

相關問題