2017-02-23 121 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

我想感谢大家在这里的帮助。一旦我去寻找模式,我意识到我所查询的内容并不在表格中。我在意见中发现了它。深入研究视图的设计,我能够直接提取所需的值(从视图查询中的实际支付表中取出)并绕过视图。仍然不确定发生了什么,但是现在我从其他地方获得准确的数据,我将放弃它。

相关问题