У меня есть 2 таблицы следующим образом
table1
id | date
------+---------------------
1 | 1/12/2017
1 | 3/12/2017
1 | 10/2/2018
1 | 10/4/2018
2 | 1/7/2018
2 | 12/9/2018
2 | 13/9/2018
2 | 1/10/2018
table2
id | date1 | date2 | value
------+----------------+--------------+----------
1 | 1/1/2018 | 1/1/2018 | 1
1 | 15/2/2018 | 1/1/2018 | 4
1 | 10/4/2018 | 15/2/2018 | 7
2 | 1/7/2018 | 1/7/2018 | 5
2 | 13/9/2018 | 1/7/2018 | 2
2 | 1/10/2018 | 13/9/2018 | 14
Я хочу добавить столбец значений в таблицу 1, сопоставляя по id,и если дата находится между date1 и date 2. Однако, в случае date1 = date2, условие должно быть датой, начинающейся или предшествующей date1
Результаты должны быть
id | date | value
------+-----------------+---
1 | 1/12/2017 | 1
1 | 3/12/2017 | 1
1 | 10/2/2018 | 4
1 | 10/4/2018 | 7
2 | 1/7/2018 | 5
2 | 12/9/2018 | 2
2 | 13/9/2018 | 2
2 | 1/10/2018 | 14
Я пробовал следующий запрос SQL
SELECT table1.id, table1.date, table2.value
FROM table1
LEFT JOIN table2 ON (table1.id = table2.id AND
CASE
WHEN table2.date1 = table2.date2 THEN table1.date <= table2.date
ELSE table1.date BETWEEN table2.date2 AND table2.date1 );
AND
SELECT table1.id, table1.date, table2.value
FROM table1
LEFT JOIN table2 ON (table1.id = table2.id) WHERE
CASE
WHEN table2.date1 = table2.date2 THEN table1.date <= table2.date
ELSE table1.date BETWEEN table2.date2 AND table2.date1;
, однако это не дает нужного мне результата.Где я ошибаюсь