1
我有兩個表MASTER_TABLE
和DOCUMENTS
表。兩者都與列reference_id有關。 DOCUMENTS
表中的列doc_id
,doc_type
和doc_creation_date
我們可以在DOCUMENTS
表不同doc_creation_date
多個條目每個doc_type
。我的目標是獲取doc_type
和doc_id
在同一行上分別doc_type
的最大doc_creation_date
取多列值作爲列值
MASTER_TABLE
REFERENCE_ID COLUMN1 COLUMN2
1 DATA1 DATA2
2 DATA3 DATA4
3 DATA5 DATA6
DOCUMENTS
REFERENCE_ID DOC_ID DOC_TYPE DOC_CREATION_DATE
1 11 PDF 16/06/2017
1 12 XLS 16/06/2017
1 13 TXT 16/06/2017
1 14 PDF 15/06/2017
1 15 XLS 15/06/2017
1 16 TXT 15/06/2017
2 17 PDF 16/06/2017
2 18 XLS 16/06/2017
2 19 TXT 16/06/2017
EXPECTED OUTPUT
REFERENCE_ID DOC_ID_PDF DOC_ID_XLS DOC_ID_TXT
1 11 12 13
2 17 18 19
這可能使用單個查詢來實現。我嘗試了一種自我連接和支點,但是猜測是以錯誤的方式來做。我們有我們可以使用的Oracle 11g和12c數據庫。
如果2個doc_ids具有相同的creation_date,該怎麼辦?例如doc_id 21和22的ref_id = 1和doc_type = pdf有creation_date = 2017年6月16日,哪一個應該被選中? – Debabrata
一個參考ID將永遠不會有相同日期的2個文檔ID。他們至少有幾秒鐘的專欄,我沒有提出質疑爲簡單起見。在任何時間點,對於每個參考ID,每個文檔類型只會存在一個文檔ID。 –
然後我發佈的答案將解決您的問題 – Debabrata