我在Oracle SQL Developer中編寫查詢。 基本上我想找到最新的每個ID的date_transaction記錄。現在我的查詢最多返回兩個記錄每個ID,每個狀態一個。Oracle SQL:查找每個ID號的最新事務
我當前的查詢:
select id, to_char(MAX(DATE_TRANSACTION),'MM/DD/YY HH24:MM:SS'), status, dkld.note
from db_name.table1_name mtlr
inner join (select * from db_name.table2_name where table_number = 308) dkld
on dkld.integer_key = mtlr.status
where id <> 0 and mtlr.date_transaction between (systimestamp - interval '1' hour) and systimestamp
group id, status, dkld.note
order by id
樣品查詢返回:
| ID | max(date_transaction) | Status | Note |
|--------------------------------------------------------|
| 2 | 12/18/14 13:12:24 | 3 | In Transit |
| 2 | 12/18/14 13:12:22 | 4 | Arrived |
| 3 | 12/18/14 13:12:49 | 4 | Arrived |
| 4 | 12/18/14 13:12:05 | 3 | In Transit |
| 4 | 12/18/14 13:12:23 | 4 | Arrived |
我真的很新的SQL,我不知道從哪裏何去何從。我怎樣才能縮小範圍,以便只獲取每個ID的最新記錄?
這是書面的,但表格中有大約20列,所以看起來有點難。你將如何改變它,以便它只選擇id,date_transaction和status? 當我自己做出改變時,我最終只能得到分鐘值= 12的時間(不知道這是怎麼發生的......) –
另外,您的查詢的一些解釋將會很好 –
恕我直言,不需要進一步解釋。如果沒有比* this *更近的事物,*這* *必須是**最近的事物。 – wildplasser