大体的描述如下:
查询tb2中日期离tb1中最近的记录,如果tb1的这条记录查询出来,那么
对应tb2中这个日期下个日期在tb1中没有最近的记录,那么不显示tb1的对应日期
知道tb1中日期再次出现里tb1中最近的记录。还有个条件就是tb2中相邻日期之间的日期
没有在tb1中出现具体事例如下:
tb1a1         b1          c1
0001  2012-10-1        a
0001  2012-10-2        b
0001  2012-10-9        ctb2
a         b          
0001    2012-10-1
0001    2012-10-2
0001    2012-10-3
0001    2012-10-4
0001    2012-10-10
0001    2012-10-12查询结果如下:
a         b           b1             c1          
0001    2012-10-1     2012-10-1      c   
0001    2012-10-2     2012-10-2      b
0001    2012-10-3      null
0001    2012-10-4      null
0001    2012-10-10    2012-10-9      c
0001    2012-10-12     null
0002    2012-10-12     null
0003    2012-10-12     null

解决方案 »

  1.   

    0002    2012-10-12     null
    0003    2012-10-12     null 这两条怎么来的
      

  2.   

    没打上,是tb2中的数据
    tb2
    a         b          
    0001    2012-10-1
    0001    2012-10-2
    0001    2012-10-3
    0001    2012-10-4
    0001    2012-10-10
    0001    2012-10-12
    0002    2012-10-12    
    0003    2012-10-12    
      

  3.   

    大体的描述如下:
    查询tb2中日期离tb1中最近的记录,如果tb1的这条记录查询出来,那么
    对应tb2中这个日期下个日期在tb1中没有最近的记录,那么不显示tb1的对应日期
    直到tb2中日期再次出现离tb1中最近的记录。还有个条件就是tb2中相邻日期之间的日期
    没有在tb1中出现具体事例如下:
    tb1a1         b1          c1
    0001  2012-10-1        a
    0001  2012-10-2        b
    0001  2012-10-9        ctb2
    a         b          
    0001    2012-10-1
    0001    2012-10-2
    0001    2012-10-3
    0001    2012-10-4
    0001    2012-10-10
    0001    2012-10-12
    0002    2012-10-12    
    0003    2012-10-12    
    查询结果如下:
    a         b           b1             c1          
    0001    2012-10-1     2012-10-1      c   
    0001    2012-10-2     2012-10-2      b
    0001    2012-10-3      null
    0001    2012-10-4      null
    0001    2012-10-10    2012-10-9      c
    0001    2012-10-12     null
    0002    2012-10-12     null
    0003    2012-10-12     null .
      

  4.   

    select a.*,b.b1,b.c1
    from tb2 a left join tb1 b
    on a.a= b.a1
    and not exists (
    select 1 from tb1
    where a1= b.a1
    and b1 <= a.b
    and b1 > b.b1
    )
    and not exists 
    select 1 from tb2
    where a= a.a
    and b < a.b
    and b >= b.b1
    )
      

  5.   

    tb2中日期离tb1中最近
    相邻日期

    怎么理解? 相差多少天称为最近? 相邻多少天称为相邻?
    tb1和tb2如何关联? 是否通过 tb1.a1 = tb2.a ?