SQL查询以获取tab2中每个EID和JOINING_DT对应的记录,这些记录只是tab2的先前日期,相等日期和所有更大日期的行

时间:2019-01-06 04:40:31

标签: sql sybase-iq

enter image description here标签1:

EID    JOINING_DT
---------
1     04/04/2018
2     06/06/2018
3     04/04/2018
4     03/03/2018

tab2:

EID  JOINING_DT  INFO
-------------------
1   01/01/2018   x
1   02/02/2018   x
1   03/03/2018   x
1   04/04/2018   x
1   05/05/2018   x
2   01/01/2018   x
2   05/05/2018   x
2   07/07/2018   x
3   02/02/2018   x
4   03/03/2018   x

通过使用以上2个表,我想获取t1.id = t2.d,并且t1的日期应该恰好在前,相等且都更大。像下面 结果:

EID  JOINING_DT  INFO
-------------------
1   03/03/2018   x
1   04/04/2018   x
2   01/01/2018   x
2   05/05/2018   x
2   07/07/2018   x
3   02/02/2018   x
4   03/03/2018   x

注意:请考虑该解决方案应该是具有大量数据的高性能

1 个答案:

答案 0 :(得分:0)

也许这就是您想要的

      select id, date,
       value from
       table1 t1 join
       table2 t2 on 
        (  t1.id =t2.id )
         and
         (abs(t2.date-t1.date) =1
         or 
          t1.date=t2.date)