TableA (id int, символ match1, символ match2, символ match3, дата-время начала, дата окончания, символ состояния)
id match1 match2 match3 startdate enddate
1 AAA BBB CCC 2006-01-01 2007-01-01
2 AAA BBB CCC 2006-12-12 2008-01-01
3 AAA BBB CCC 2008-01-01 2012-02-02
4 DDD EEE FFF 2009-01-01 2012-01-01
5 DDD EEE FFF 2013-01-01 2020-01-01
Ссылка TableB (символ match1, совпадение2, match3, дата-время начала, конечная дата)
match1 match2 match3 startdate enddate
AAA BBB CCC 2006-01-01 2015-01-01
DDD EEE FFF 2009-01-01 2015-01-01
Хорошо, поэтому [Stat] имеет значение NULL, мне нужно заполнить stat с помощью 'FAIL' в таблице A, когда:
1) Для сопоставления match1, match2, match3 в таблицеB, даты (начало и конец) существует за пределами области видимости.Давайте посмотрим ID = 5ffectivedates = 2013 - 2020, но в своей справочной таблице его 2009-2015 гг., Поэтому ID = 5 получает 'fail'.
2) В наборе набор - это записи, когда match1, match2,match3 равны, поэтому ID 123 - это один набор, а ID 4 и 5 - другой набор.Итак, в наборе даты вступления в силу (начальная и конечная) перекрываются.хотя набор 1 (ID1,2,3) существует в диапазоне дат соответствующей записи в справочной таблице, но эффективные даты ID = 2 перекрывают эффективные даты ID = 1, поэтому ID = 2 получает 'FAIL'
Ожидаемый результат:
id match1 match2 match3 startdate enddate stat
1 AAA BBB CCC 2006-01-01 2007-01-01 NULL
2 AAA BBB CCC 2006-12-12 2008-01-01 FAIL
3 AAA BBB CCC 2008-01-01 2012-02-02 NULL
4 DDD EEE FFF 2009-01-01 2012-01-01 NULL
5 DDD EEE FFF 2013-01-01 2020-01-01 FAIL
Заранее спасибо.