У меня в SQL Server есть таблица, подобная этой:
ID Tblcd TblNo Location TableType StartDate EndDate
---------------------------------------------------------------
2 B 4 2B4 M 2/5/2014 4/6/2016
2 B 4 2B4 M 4/7/2017 NULL
2 B 4 2B4 K 3/4/2016 NULL
3 A 3 3A3 L 2/7/2018 7/4/2018
3 A 3 3A3 L 2/5/2018 NULL
1 C 5 1C5 N 2/4/2011 NULL
1 B 4 1B4 M 8/9/2015 3/5/2017
Я хочу идентифицировать строку с StartDate как 2/5/2018, которая фактически перекрывается с предыдущей записью
Попытка с использованием запроса ниже, но не удалось найти вторую запись. Что мне здесь не хватает.
SELECT
A.Id AS AId,
B.Id AS BId,
A.StartDate AS AStartDate,
A.EndDate AS AEndDate,
B.StartDate AS BStartDate,
B.EndDate AS BEndDate
FROM
dbo.TableDates AS a
INNER JOIN
dbo.TableDates AS b ON (b.Id = a.Id AND b.TblCd = a.TblCd AND b.TblNo = a.TblNo)
WHERE
a.StartDate <= b.EndDate
AND a.EndDate >= b.StartDate