У меня есть две таблицы, как показано ниже:
таблица 1:
ID B C D E Date
1 b c D E 2018/10/10
1 c d A B 2018/10/14
Таблица 2:
ID B C Date
1 b c 2018/10/10
1 x y 2018/10/11
1 y x 2018/10/12
1 p q 2018/10/13
1 c d 2018/10/14
Таблица A имеет 6 столбцов, в то время как таблица 2 имеет 4 столбца.При использовании левого соединения получается:
Select * from Table2 t2 left join table1 t1
on t2.id=t1.id and t2.Date = t1.Date
Результат левого соединения:
ID B C D E Date1 ID B C Date2
1 b c D E 2018/10/10 1 b c 2018/10/10
- - - - - - 1 x y 2018/10/11
- - - - - - 1 y x 2018/10/12
- - - - - 1 p q 2018/10/13
1 c d A B 2018/10/14 1 c d 2018/10/14
Примечание:
'-' represnt NULL.
Даты отсортированы в результате левого соединения - упорядочены по table2.date, table1.date asc
- Я взял результат объединения в cte.не удалось сгенерировать окончательный результат.
Ожидаемый результат:
ID B C D E Date
1 b c D E 2018/10/10
1 x y D E 2018/10/11
1 y x D E 2018/10/12
1 p q D E 2018/10/13
1 c d A B 2018/10/14
Где Дата из таблицы1 равна нулю в левом результате соединения, поиск предыдущего ненулевая дата таблицы 1, которая будет чуть меньше текущей даты таблицы 2.
И извлекает значения столбцов D и E оттуда и сохраняет значения столбцов B и C из текущей записи, где Date1 равно нулю.
Будучи новичком в SQL, я застрял в этом.Пожалуйста, помогите.
Заранее спасибо.