У меня есть две таблицы A и B. Я хочу объединить их, основываясь на их интервалах времени действия.
A имеет качество продукта (нерегулярное время), а B имеет почасовые настройки в течение периода производства.Мне нужно создать таблицу типа C, которая включает в себя параметры p1 и p2 для всех RefDates A, которые попадают во временной диапазон ValidFrom от ValidTo B.
A
RefDate result
'11-Oct-2017 00:14:00' 17
'11-Oct-2017 00:14:00' 19
'11-Oct-2017 00:20:00' 5
'11-Oct-2017 01:30:00' 25
'11-Oct-2017 01:30:00' 18
'11-Oct-2017 03:03:00' 28
B
ValidFrom ValidTo p1 p2
'11-Oct-2017 00:13:00' '11-Oct-2017 01:12:59' 2 1
'11-Oct-2017 01:13:00' '11-Oct-2017 02:12:59' 3 1
'11-Oct-2017 02:13:00' '11-Oct-2017 03:12:59' 4 5
'11-Oct-2017 03:13:00' '11-Oct-2017 04:12:59' 6 1
'11-Oct-2017 04:13:00' '11-Oct-2017 05:12:59' 7 9
Мне нужно получить что-то вроде этого.
C
RefDate res p1 p2
'11-Oct-2017 00:14:00' 17 2 1
'11-Oct-2017 00:14:00' 19 2 1
'11-Oct-2017 00:20:00' 5 2 1
'11-Oct-2017 01:30:00' 25 3 1
'11-Oct-2017 01:30:00' 18 3 1
'11-Oct-2017 03:03:00' 28 4 5
Я знаю, как сделать это в SQL, и я думаю, что я понял, как сделать эту строку за строкой в MatLab, но это ужасно медленно.Набор данных довольно большой.Я просто предполагаю, что должен быть более изящный способ, который я просто не смог найти.
Что-то, из-за чего многие из моих подходов потерпели неудачу, это то, что столбец RefDate не уникален.
edit:реальные таблицы имеют тысячи строк и сотни переменных.
C (in reality)
RefDate res res2 ... res200 p1 p2 ... p1000
11-Oct-2017 00:14:00 17 2 1
11-Oct-2017 00:14:00 19 2 1
11-Oct-2017 00:20:00 5 2 1
11-Oct-2017 01:30:00 25 3 1
11-Oct-2017 01:30:00 18 3 1
11-Oct-2017 03:03:00 28 4 5