我很难创建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