table1 と table2 の 2 つのテーブルがあります。テーブル 2 の行数はテーブル 1 よりも少なくなっています。これら 2 つのテーブルには、table1 の caldate1 と table2 の caldate2 という 2 つの日付列があります。したがって、これら 2 つのテーブルを結合して、2 つの日付列の最大値を取得し、それを新しいテーブルに保持する必要があります。しかし、これらの 2 つのテーブルを内部結合すると、table2 にない table1 行は最終テーブルに入りません。したがって、次のようなものが必要です
table1
left outer join
table2
しかし、2 つの日付が null になっている状況があります。したがって、合体を使用して、以下のシナリオで正しいデータを取得できますか..
1. table1 の行が table2 にない -> table1 の caldate1 は最終テーブルに入る必要があります。
2. table1 の行は table2 にあり、table1 の caldate1 と table2 の caldate2 は null です - > null は最終テーブルの日付列に入る必要があります
3. table1 の行は table2 にあり、caldate1 は null ではなく、caldate2 は null -> caldate1 は最終テーブルに入る必要があります。
4. table1 の行が table2 にあり、caldate1 が null で caldate2 が null でない場合 -> caldate2 が最終テーブルに入る必要があります
5. table1 の行が table2 にあり、caldate1 が caldate2 より大きい -> caldate1 が最終テーブルに入る必要がある
6. table1 の行が table2 にあり、caldate2 が caldate1 より大きい -> caldate2 が最終テーブルに入る必要がある
table1 と一致しない table2 の行を考慮する必要はありません。したがって、基本的に、特定の行が両方のテーブルにある場合、最新のカルデートを持つすべての table1 行が必要です。前もって感謝します。それを行うための正しい関数を取得できません。合体しますか?