确定开始日期是否在结束日期之前

时间:2013-05-30 11:52:14

标签: sql sql-server-2005

我有一个名为data的表,其中包含列:CD,beginDate,endDate。后缀。我需要确定是否要插入任何行,beginDate比具有相同后缀值的任何其他行中的endDate更早。

我正在尝试的代码,没有运气:

select * from data a1
join data a2 on a2.cd=a1.cd
where
    a1.suffix=a2.suffix and 
    a1.beginDate<a2.endDate

任何想法,我可以这么热吗? 提前致谢

1 个答案:

答案 0 :(得分:1)

你想在连接中的cd条件上存在不等式:

  

...在任何其他行中,beginDate早于endDate   相同的后缀值。

您还可以将所有条件放入连接的ON子句中:

select a1.cd, a2.cd, a1.suffix, a1.beginDate, a2.endDate
from data a1
join data a2 
on a2.cd <> a1.cd
and a1.suffix = a2.suffix
and a1.beginDate < a2.endDate