пытается найти перекрывающиеся (эффективные) даты нескольких групп строк, используя SQL с одним и тем же ключом (ID1, ID2, NUMBER) и вывести одну строку из этих данных:
Пример очень большой набор данных выглядит следующим образом:
EDT1 & XDT1 = даты вступления в силу и срок действия ID1
EDT2 & XDT2 = даты вступления в силу и срок действия ID2
Чтобы создать этот набор данных, Идентификаторы были объединены, когда они имели одинаковое значение NUMBER. Из исходного источника значение NUMBER могло быть там несколько раз с разными датами вступления в силу и сроком действия. Каждая строка сохранялась с каждой датой.
Теперь задача состоит в том, чтобы найти, где EDT1 / XDT1 и EDT2 / XDT2 перекрываются для каждого набора ключей (ID1, ID2, NUMBER), и вывести только одну строку на ключ (ID1 , ID2, НОМЕР)
ID1 ID2 NUMBER EDT1 XDT1 EDT2 XDT2
---------- ---------- -------------------- -------------- -------------- -------------- --------------
4054012 2057 00107890000001035080 2020-03-10 9999-12-31 1997-04-07 9999-12-31
4054012 2057 00107890000001035080 2020-03-10 9999-12-31 2015-10-17 9999-12-31
4054012 2057 00107890000001035080 2020-03-10 9999-12-31 2016-01-15 9999-12-31
15839 2163 00103102000001013293 2013-11-04 9999-12-31 2013-11-04 9999-12-31
15839 2163 00103102000001013293 2013-11-04 9999-12-31 2015-10-17 9999-12-31
15839 2163 00103102000001013293 2015-10-17 9999-12-31 2013-11-04 9999-12-31
15839 2163 00103102000001013293 2015-10-17 9999-12-31 2015-10-17 9999-12-31
Ищу:
Dates where both IDs/Value are effective (overlap)
4054012 2057 00107890000001035080 2020-03-10 9999-12-31
15839 2163 00103102000001013293 2013-11-04 9999-12-31