“帐户”表具有“帐户”,“开始日期”和“结束日期”字段。同一帐户将具有不同的开始日期和结束日期。 我需要获得属于同一日期范围的帐户。
表
+----------+-----------+------------+
| Account | StartDate | Enddate |
+----------+-----------+------------+
| T001 | 1/1/2018 | 6/30/2018 |
| T001 | 7/1/2018 | 12/31/2018 |
| T002 | 1/1/2018 | 6/1/2018 |
| T002 | 7/1/2018 | 12/31/2018 |
| T002 | 4/1/2018 | 6/5/2018 |
+----------+-----------+------------+
预期
+----------+-----------+------------+
| Account | StartDate | Enddate |
+----------+-----------+------------+
| T002 | 1/1/2018 | 6/1/2018 |
| T002 | 7/1/2018 | 12/31/2018 |
| T002 | 4/1/2018 | 6/5/2018 |
+----------+-----------+------------+
T002帐户日期范围冲突。
答案 0 :(得分:0)
SELECT t1.*
FROM account_table t1
INNER JOIN account_table t2
ON t1.Account=t2.Account
AND t1.StartDate<t2.EndDate
AND t1.EndDate>t2.StartDate
AND t1.StartDate<>t2.StartDate;
这将获得所有日期范围重叠的帐户。