У меня есть две таблицы table1 и table2. Таблица2 имеет меньшее количество строк, чем таблица1. В этих двух таблицах есть два столбца даты caldate1 в таблице1 и caldate2 в таблице2. Так что теперь мне нужно объединить эти две таблицы, получить максимум двух столбцов даты и сохранить их в новой таблице. Но если мы внутренне объединяем эти две таблицы, то строки table1, которых нет в table2, не попадут в финальную таблицу. Итак, нам нужна какая-то вещь, как
table1
left outer join
table2
Но есть ситуация, когда две даты имеют нулевые значения. Так могу ли я использовать объединение, чтобы получить правильные данные в следующих сценариях ..
1. строка в table1 отсутствует в table2 -> тогда caldate1 в table1 должен перейти в финальную таблицу.
2. строка в таблице1 есть в таблице2, а значения caldate1 таблицы1 и caldate2 таблицы2 равны нулю -> тогда значение null должно войти в столбец даты окончательной таблицы
3. строка в таблице1 есть в таблице2, а caldate1 не равен нулю, а caldate2 равен нулю -> тогда caldate1 должен войти в финальную таблицу.
4. строка в table1 есть в table2, а caldate1 равен нулю, а caldate2 не равен нулю -> тогда caldate2 должен войти в финальную таблицу
5. строка в table1 есть в table2, а caldate1 больше, чем caldate2 -> caldate1 должен войти в финальную таблицу
6. строка в table1 есть в table2, а caldate2 больше, чем caldate1 -> caldate2 должен войти в финальную таблицу
Нам не нужно рассматривать строки в table2, которые не совпадают с table1. Поэтому в основном мне нужны все строки таблицы table1 с последним значением caldate, если в обеих таблицах есть конкретная строка. Заранее спасибо. Я не могу получить правильную функцию, чтобы сделать это. Это слияние?