マーカスの答えは正しいです。これを行う方法は、IntervalMatch を使用することです。2 つのテーブルをそのまま保持し、IntervalMatch を使用して間に「間」の関係を追加できます。ロード スクリプトの実行後に関係を追加することはできません。
最初に、日付範囲を持つテーブルをロードする必要があります (SQL クエリは省略されます)。まあ言ってみれば:
Ranges:
LOAD
rangeID,
validfrom, // date
validto, // date
commonkey, // common key for the two tables
price; // the data that's needed as a result of the linking
次に、日付を含む別のテーブルをロードします
Data:
LOAD
column1,
column2,
date,
commonkey;
次に、IntervalMatch を使用する必要があります。これはそれを行う1つの方法です:
Left Join (Data)
IntervalMatch(date, commonkey)
LOAD
validfrom,
validto,
commonkey
Resident Ranges;
これで、2 つのテーブル間のリンクが作成されました。これを追加することで、結果の合成キーを削除できます。
Left Join (Data)
LOAD
validfrom,
validto,
commonkey,
rangeID
Resident Ranges;
DROP Fields validfrom, validto FROM Data;
これで、キーを使用してテーブルがリンクされrangeID
ます。テーブルに共通のキー (カテゴリ ID など) がない場合 (つまり、日付のみを一致させる必要がある場合)、commonkey
上記の例の を無視できます。自分のケースで必要だったので、例に含めたかっただけで、同様の問題を抱えている人に役立つことを願っています。
これは、「IntervalMatch (extended)」というラベルの Qlikview ヘルプにあります。Qlikview クックブック(fillrowsintervalmatch.qvw) も、この問題の解決に役立ちました。