У меня есть две таблицы.Я должен заполнить столбец R_val из таблицы B для каждой строки таблицы A (A является таблицей драйверов).Но при заполнении R_val я должен учитывать startdate, end_date и flag для каждой комбинации field_num, field.Например, из приведенного ниже примера, если начальная дата - 01/01/2017, конечная дата - NULL, а флаг - O (означает открытый) в таблице B, то для всех строк в таблице A дата начала больше, чем start_date в B, и флаг= O тот же R_val должен быть заполнен. Например, если есть другая запись в таблице B, для которой начальная и конечная даты в таблице A попадают в тот же диапазон, что и начальная и конечная даты в таблице B, и статус C (закрыт), тоR_val в этом случае будет другим: CX.
Я попытался объединить 2 таблицы, основанные на field_num, field, start_date, но в результате я получил неправильный результат, потому что даты могут не обязательно совпадать всегда.
Ниже приведен тот же вход для образца field_num, комбинация полей
Таблица A
field_num field startdate end_date val qual ref flag
XXX112 123456 10/02/2016 12/02/2016 10 IND PRE C
XXX112 123456 10/02/2017 12/02/2017 10 IND PRE C
XXX112 123456 05/02/2018 08/02/2018 20 IND PRE C
XXX112 123456 01/01/2019 NULL 30 IND PRE O
Таблица B
field_num field startdate end_date val qual ref flag
XXX112 123456 01/01/2017 NULL RX NULL R O
XXX112 123456 10/02/2016 12/02/2016 CX NULL R C
Ожидаемый_выход
field_num field startdate end_date val qual ref flag R_val
XXX112 123456 10/02/2016 12/02/2016 10 IND PRE C CX
XXX112 123456 10/02/2017 12/02/2017 10 IND PRE C RX
XXX112 123456 05/02/2018 08/02/2018 20 IND PRE C RX
XXX112 123456 01/01/2019 NULL 30 IND PRE O RX
Любая помощь будет очень признательна.