2017-02-23 15 views
1

私はSUPERの簡単なクエリを持っています。結合はありません。しかし何らかの理由で、私の合計は倍増します。クエリは単純です:データの行が1行しかないのにSQL SUMが倍増する

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

私は千を見ることを期待(この顧客のORDER_AMTが1000であり、彼らが唯一のORDERSテーブルの一つのレコードを持っているとして)が、私は2000を取得しています。私がしなければ:

SELECT * FROM ORDER WHERE CUSTOMER = '123' 

は、私が唯一の単一のデータの行とORDER_AMTの値が1,000を取得する(私は合計探している唯一の理由は、これは、ストアドプロシージャと他の顧客の一部が可能であるということです複数の注文があるので、私は本当にそれらの合計が欲しい)。

誰もこれまでに遭遇したことはありますか?

+5

は注文と注文の2つの異なるテーブルですか?それともミスタイプですか? –

+0

'ORDER_AMT'のデータ型は? – str

+0

@ KarthikGanesanが指摘しているように、スペルミスがない場合は、DB内にこのテーブルの2つの異なるコピーまたはその名前のDataViewがある可能性があります。 – RuDevel

答えて

0

sum()関数を使用している場合は、グループを作成する必要はありません。 sum()関数は、すでに返されたテーブルのすべてを集計します。

0

皆様のご協力をいただき、ありがとうございます。私がスキーマを見つけるために行くと、私が照会していたものがテーブルにないことに気付きました。私はそれを眺めて見つけました。ビューのデザインを掘り下げて、必要な値(ビューのクエリにあった実際の支払いテーブルから)を直接引き出し、ビュー全体をバイパスすることができました。まだ何が起こったのかは分かりませんが、他の場所から正確なデータを取得しているので、それを削除します。

関連する問題