2017-11-10 9 views
-1

私には、order_id、status、およびupdate_dateが含まれているテーブルがあります。ステータスは成功または失敗である可能性があります。各注文は、以下のような「成功」ステータスを除いて、更新日が異なるこれらのステータスを複数回持つことができます。oracleで最大日付を選択

1001 success 03-01-2015 
1002 failure 03-01-2015 

の下のplsを取得するために役立つように、私は、それぞれの更新日付、その後、注文が成功のステータスを持っている場合、それぞれの状態で、ケースには、最新の更新日時と各注文IDを選択する必要が

order_id status update_date 
1001 failure 01-01-2015 
1001 failure 02-01-2015 
1001 success 03-01-2015 
1001 failure 04-01-2015 
1002 failure 02-01-2015 
1002 failure 03-01-2015 

この。おかげ

答えて

2

はこれを試してみてください:

SELECT order_id, 
    status, 
    update_date 
FROM(SELECT order_id, 
      status, 
      update_date, 
      ROW_NUMBER() over (partition BY order_id order by DECODE(status,'success',1,0) DESC,update_date DESC) rn 
     FROM test1) 
WHERE rn=1; 

P.S:test1のは、あなたのデータと私のテーブル名です。

関連する問題