У меня есть запись и ассоциированная запись для этой записи.Я хочу вставить его в другую таблицу в зависимости от того, в какой диапазон дат он попадает из третьей таблицы.
Например:
Запись для вставки в таблицу 1:
Col1 | Col 2 | Col 3 | Log_Date | Table2.ID
Таблица 2:
ID | ColA | ColB | Start_Date | End_Date |
Если Log_Date находится между Start_Date и End_Date, мы вставляем запись вместе с идентификатором из таблицы 2. Я извлекаю таблицу 2, основываясь на совпадении с Col2 =ColA и Col3 = ColB.
Например (мое объяснение довольно скудное, поэтому я надеюсь, что это проясняет ситуацию):
Таблица 2:
ID | ColA | ColB | Start_Date | End_Date
1 | 123 | 345 | 2018-08-28 | 2018-09-29
2 | 123 | 345 | 2018-09-29 | NULL
В этомВ этом случае мы примем Col 2 = ColA и Col3 = ColB и получим два идентификатора.Если Log_Date <= End_Date, мне нужен ID = 1, а если Log_Date> End_Date, мне нужен ID = 2.
Чаще всего у меня будет что-то похожее на выше, где я получу совпадение на2 строки в таблице 2, где одна End_Date будет равна NULL.
Любая помощь приветствуется!
PS Эта проверка будет частью оператора вставки, если нет лучшего способа сделать это.?
Редактировать: Для большей ясности, в приведенном выше примере предположим, что это записи:
Col1 | Col2 | Col3 | Log_Date
123 | 345 | 456 | 2018-09-01
123 | 345 | 456 | 2018-09-05
123 | 345 | 456 | 2018-09-09
123 | 345 | 456 | 2018-09-15
123 | 345 | 456 | 2018-10-01
123 | 345 | 456 | 2018-10-15
Затем я объединяю их с таблицей 2 на Col1 = ColA и Col2 = ColB * 1029.*
Результат:
Col1 | Col2 | Col3 | Log_Date | ID |ColA | ColB | Start_Date | End_Date
123 | 345 | 456 | 2018-09-01 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-09-01 | 2 | 123 | 345 | 2018-09-29 | NULL
123 | 345 | 456 | 2018-09-05 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-09-05 | 2 | 123 | 345 | 2018-09-29 | NULL
123 | 345 | 456 | 2018-09-09 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-09-09 | 2 | 123 | 345 | 2018-09-29 | NULL
123 | 345 | 456 | 2018-09-15 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-09-15 | 2 | 123 | 345 | 2018-09-29 | NULL
123 | 345 | 456 | 2018-10-01 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-10-01 | 2 | 123 | 345 | 2018-09-29 | NULL
123 | 345 | 456 | 2018-10-15 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-10-15 | 2 | 123 | 345 | 2018-09-29 | NULL
Что я хочу вставить из этого:
Col1 | Col2 | Col3 | Log_Date | ID |ColA | ColB | Start_Date | End_Date
123 | 345 | 456 | 2018-09-01 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-09-05 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-09-09 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-09-15 | 1 | 123 | 345 | 2018-08-28 | 2018-09-29
123 | 345 | 456 | 2018-10-01 | 2 | 123 | 345 | 2018-09-29 | NULL
123 | 345 | 456 | 2018-10-15 | 2 | 123 | 345 | 2018-09-29 | NULL