私は2つのテーブルMASTER_TABLE
とDOCUMENTS
テーブルを持っています。両方とも列に関連していますreference_id。 DOCUMENTS
の表は、我々は異なるdoc_creation_date
と各doc_type
ためDOCUMENTS
テーブル内の複数のエントリを持つことができ、列doc_id
、doc_type
とdoc_creation_date
を持っています。私の目的はdoc_type
とmax 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
のための単一の行の各doc_type
ためdoc_id
は、単一のクエリを使用して達成するために、このことは可能ですフェッチすることです。私は自己結合とピボットを試みたが、間違ったやり方をしていると推測する。 Oracle 11gおよび12cデータベースを使用しています。
2つのdoc_idsのcreation_dateが同じ場合はどうなりますか?例えばdoc_id ref_id = 1とdoc_type = pdfの21&22にcreation_date = 16-Jun-2017がありますが、これは選択する必要がありますか? – Debabrata
1つのref idは、同じ日付のために2つのdoc idを持つことはありません。彼らは私が単純化の目的のために問題にしてくれなかった秒のコラムで少なくとも異なっています。どの時点でも、各ref idには各docタイプごとに1つのdoc idしか存在しません。 –
それから、私が投稿した答えはあなたの問題を解決するでしょう – Debabrata