我想是的。我可能没有正确解释重叠。只要我使用您的SQL提供输入,我就不会得到任何记录的重叠标志。我应该在两条记录上有重叠。@Anon似乎在工作。我注意到最后一个逻辑语句是t1.Column1Id t1.Column1Id(typo),应该是t1.Colum

我想是的。我可能没有正确解释重叠。只要我使用您的SQL提供输入,我就不会得到任何记录的重叠标志。我应该在两条记录上有重叠。@Anon似乎在工作。我注意到最后一个逻辑语句是t1.Column1Id t1.Column1Id(typo),应该是t1.Colum,sql,sql-server,Sql,Sql Server,我想是的。我可能没有正确解释重叠。只要我使用您的SQL提供输入,我就不会得到任何记录的重叠标志。我应该在两条记录上有重叠。@Anon似乎在工作。我注意到最后一个逻辑语句是t1.Column1Id t1.Column1Id(typo),应该是t1.Column1Id t2.Column1Id我看不出这个查询如何不会产生OP所指出的示例结果。你能解释一下吗?@Anon。很好的逻辑,但不能回答OP的问题。他刚刚通过编辑澄清了这个问题。你应该看看这个。@GordonLinoff击中移动目标更难。@Ano



我想是的。我可能没有正确解释重叠。只要我使用您的SQL提供输入,我就不会得到任何记录的重叠标志。我应该在两条记录上有重叠。@Anon似乎在工作。我注意到最后一个逻辑语句是t1.Column1Id t1.Column1Id(typo),应该是t1.Column1Id t2.Column1Id我看不出这个查询如何不会产生OP所指出的示例结果。你能解释一下吗?@Anon。很好的逻辑,但不能回答OP的问题。他刚刚通过编辑澄清了这个问题。你应该看看这个。@GordonLinoff击中移动目标更难。@Anon我没有得到我期望的结果。我可能没有正确解释重叠。只要我使用您的SQL提供输入,我就不会得到任何记录的重叠标志。我应该在两条记录上有重叠。@Anon似乎在工作。我注意到最后一个逻辑语句是t1.Column1Id t1.Column1Id(typo),应该是t1.Column1Id t2.Column1Id
+-----------+-----------+------------+------------+
| Column1Id | Column2Id | StartDate  |  EndDate   |
+-----------+-----------+------------+------------+
|       120 |        12 | 2014-07-13 | 2014-07-26 |
|       120 |        41 | 2014-07-13 | 2014-07-26 |
|       120 |        55 | 2014-07-13 | 2014-07-26 |
|       120 |        56 | 2014-07-13 | 2014-07-26 |
|      3293 |        41 | 2014-07-20 | 2014-07-26 |
+-----------+-----------+------------+------------+
+-----------+-----------+------------+------------+----------------+
| Column1Id | Column2Id | StartDate  |  EndDate   | HasDateOverlap |
+-----------+-----------+------------+------------+----------------+
|       120 |        12 | 2014-07-13 | 2014-07-26 |              0 |
|       120 |        41 | 2014-07-13 | 2014-07-26 |              1 |
|       120 |        55 | 2014-07-13 | 2014-07-26 |              0 |
|       120 |        56 | 2014-07-13 | 2014-07-26 |              0 |
|      3293 |        41 | 2014-07-20 | 2014-07-26 |              1 |
+-----------+-----------+------------+------------+----------------+
SELECT ColumnId1, ColumnId2, StartDate, EndDate
FROM   Table1
+-----------+-----------+------------+------------+
| Column1Id | Column2Id | StartDate  |  EndDate   |
+-----------+-----------+------------+------------+
|       120 |        41 | 2014-07-13 | 2014-07-26 |
|      3293 |        41 | 2014-07-20 | 2014-07-26 |
+-----------+-----------+------------+------------+
2014-07-13 to 2014-07-26
2014-07-20 to 2014-07-26
SELECT *,
  CASE
    WHEN EXISTS (
      SELECT 1
      FROM Table1 t2
      WHERE t1.StartDate < t2.EndDate
        AND t2.StartDate < t1.EndDate
        AND t1.Column2Id = t2.Column2Id   --to accommodate edited question
        AND t1.Column1Id <> t2.Column1Id  --to accommodate edited question
    ) THEN 1
    ELSE 0
  END AS HasDateOverlap
FROM Table1 t1