将表格中的日期范围与另一个表格日期范围进行比较,找出缺失的时间段

时间:2017-05-23 20:30:10

标签: sql-server tsql sql-server-2012

请查看以下输入和所需输出。我需要在T-SQL中使用查询/过程/函数来获得此输出。

要求:我有表a和表b。

  1. 获取表b中的所有日期范围和表a中缺少的日期范围(与表b比较)。

  2. 基本上我们需要确保表a中的所有日期范围,需要在输出中涵盖

  3. Input       
    table b
    
    Start date  End date    ID
    1/1/2009    9/30/2009   1
    1/1/2013    9/30/2013   1
    11/1/2014   11/30/2014  1
    2/2/2015    12/31/2016  1
    
    table a 
    1/1/2009    12/31/2011  1
    1/1/2013    9/30/2013   1
    1/1/2014    4/30/2014   1
    10/1/2014   12/31/2014  1
    2/2/2015    12/31/9999  1
    
    Output      
    table b
    
    Start date  End date    ID
    1/1/2009    9/30/2009   1
    1/1/2013    9/30/2013   1
    11/1/2014   11/30/2014  1
    2/2/2015    12/31/2016  1
    
    table a         
    10/1/2009   12/31/2011  1
    1/1/2014    4/30/2014   1
    10/1/2014   10/31/2014  1
    12/1/2014   12/31/2014  1
    1/1/2017    12/31/9999  1
    

1 个答案:

答案 0 :(得分:0)

表[a]包含4条记录,表[b]包含5条记录。你需要将第5条记录插入表格[b]。如果这是正确的那么...... 在表[a]和[b]上对开始数据和结束数据执行简单的外连接。从表[a]中获取值,在表[b]

中找到相应的行NULL

看起来很简单: - )

快乐的编码!!!