2 つのテーブル A と B があります。それらの有効時間間隔に基づいてそれらを結合したいと考えています。
Aには製品品質(不定期)、Bには生産期間中の時間単位の設定があります。B の ValidFrom ValidTo の時間範囲に該当するすべての A の RefDates のパラメーター p1 と p2 を含む C のようなテーブルを作成する必要があります。
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 列が一意ではないことです。
編集: 実際のテーブルには数千の行と数百の変数があります。
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