SQL-запрос для получения каждой записи EID & JOINING_DT в tab2, которые являются только предыдущей, равной датой и всеми большими строками даты из tab2 - PullRequest
0 голосов
/ 06 января 2019

enter image description here tab1:

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 голосов
/ 06 января 2019

Возможно, это то, что вы искали

      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)
...