我有一個組查詢返回不同的結果,第一次返回錯誤的結果,然後返回正確的結果。Oracle 9.0.1.1 - 同樣的查詢返回不同的結果
select
c.customer_name, c.customer_address, invoice_no,
sum(nvl(invoiced_amount,0)) invoice_amount,
sum(nvl(received_amount,0)) received_amount,
sum(nvl(returned_amount,0)) returned_amount
from sales_detail d, sales s, customer c
where d.inquiry_id = s.inquiry_id
and s.customer_id = c.customer_id
and s.sale_date between '01-jan-2012' and '31-dec-2012'
group by c.customer_name, c.customer_address, invoice_no
它返回多行,並提供正確的行計數,但雙打有些發票的價值,當它運行第一次,後來給出正確的結果通常它發生。
下面是一個例子:在數據庫
實際數據由查詢
invoice_no | invoiced_amount | received_amount | returned_amount
000010020 | 500 | 230 | 0
結果返回
invoice_no | invoiced_amount | received_amount | returned_amount
000010020 | 1000 | 460 | 0
查詢開始表現得像這樣一些天前,否則是工作完美。
附加信息
- 上有sales_detail表5個索引
- 客戶是一個視圖,物理表是在具有相同名稱
環境信息
另一個模式- 操作系統:Windows 2003服務器
- 數據庫:Oracle 9.0.1.1企業
嘗試刪除該組,並將select更改爲'select *'。檢查你沒有多次獲取任何行。 –
我已通過特定invoice_no(此發票結果翻倍)進行檢查,它將返回正確的數據 – user2705899
您可以使用http://sqlfiddle.com –