好的,所以这个特殊的用例给了我相当多的头痛 .
我想要做的是弄清楚一组中的任何StartDate和EndDates是否与一组Start和EndDates重叠,如果是,则必须返回重叠的行 .
DateRange Table - 包含所有DateRanges
DateRangeId StartDate EndDate CustomerJobQuery_Id WorkWish_Id
----------- --------------------------- --------------------------- ------------------- -----------
1 2014-03-31 00:00:00.0000000 2014-08-18 00:00:00.0000000 NULL 1
2 2014-08-25 00:00:00.0000000 2014-09-15 00:00:00.0000000 NULL 1
3 2013-08-24 00:00:00.0000000 2014-09-25 00:00:00.0000000 1 NULL
Workwish Table
Id Candidate_Id
----------- ------------
1 5
CustomerJobQuery Table
Id Customer_CustomerId
----------- -------------------
1 2
这是我的DateRange表..我的StoredProcedure接受的是CandidateId;我希望找到Candidate Id的WorkWishes,将WorkWish的DateRanges与所有CustomerJobQuery DateRanges匹配,并返回具有重叠日期的CustomerJobQueries .
我想出了如何检查特定的DateRange是否与另一个DateRange重叠...但我对如何在集合上进行此比较感到难过 .
任何帮助深表感谢!
1 回答
试试这个查询:
在这里测试(SQL小提琴):http://sqlfiddle.com/#!3/10253/3