子进程表中的日期重叠检查由sql中的parentId进行

时间:2015-03-30 05:52:05

标签: sql-server-2008 date-range

我有一个带有示例记录的ParentTable,如下所示。

Id =1,Name="ABC" 
ID=2,Name="DEF".

我和一个带有示例记录的ChildTable相同,如下所示。

   ID=1,ParentID=1,Fromdate='1/3/2015',Todate='1/5/2015'
   ID=2,ParentID=1,Fromdate='2/5/2015',Todate='31/5/2015' 
   ID=3,ParentID=2,Fromdate='1/3/2015',Todate='1/5/2015'
   ID=4,ParentId=2,Fromdate='4/5/2015',Todate='31/5/2015'.

现在,当我查询两个日期(一个日期范围)时,例如1/5 / 2015-5 / 5/2015。我应该从ParentTable获得ParentId = 1记录的结果。因为在ChildTable中,ParentId = 1的记录包含完整的传递日期范围(1/5 / 2015-5 / 5/2015),但ParentId = 2的记录不包含日期2015年2月5日和2015年3月5日。我可以使用StoredProcedure或CTE。任何人都能帮忙解决这个问题吗?

0 个答案:

没有答案