我很難創建Oracle查詢來報告某些日子(每個月的第一個月的第一個月)中的訂單的歷史狀態。我搜查了搜索,發現沒有人提出類似的問題。這似乎是一個直截了當的問題,所以希望有人能幫助!這是我的例子:使用Oracle SQL檢索特定日期的訂單狀態
訂單表:
ORDER_NUMBER STATUS DATE
50001000 Created 01-15-2010
50001000 Released 02-20-2010
50001000 Completed 02-25-2010
50001000 Closed 03-10-2010
50001035 Created 01-20-2010
50001035 Released 01-25-2010
50001035 Completed 04-05-2010
50001035 Closed 05-30-2010
所以我需要的輸出是每個訂單在每個月初的狀態。是這樣的:
DATE ORDER_NUMBER STATUS
12-01-2009
01-01-2010
02-01-2010 50001000 Created
02-01-2010 50001035 Released
03-01-2010 50001000 Completed
03-01-2010 50001035 Released
04-01-2010 50001000 Closed
04-01-2010 50001035 Released
05-01-2010 50001000 Closed
05-01-2010 50001035 Completed
06-01-2010 50001000 Closed
06-01-2010 50001035 Closed
07-01-2010 50001000 Closed
07-01-2010 50001035 Closed
..etc
是否有一些本地關鍵字,可以使這個工作沒有大量的聯接和子查詢?
感謝,
加勒特
聽起來像是你可以按月/年的分區,然後選擇與每個訂單的最大日期的狀態。也許這線程可能會有所幫助:http://stackoverflow.com/questions/561836/oracle-partition-by-keyword 此外,不應在2010年1月2日訂購'50001035'的狀態爲'Released',因爲它是01-25-2010發佈? – user1766760 2013-03-14 21:05:20
是的,你是正確的我在我的例子中有一個錯誤,現在已經改變到02-01-2010發佈。謝謝! – Garrett 2013-04-02 15:50:43