IntervalMatch
IntervalMatch プレフィックスを使うと、不連続数値を 1 つ以上の数値間隔に一致させるテーブル、そしてオプションとして 1 つ以上の追加キーの値を一致させるテーブルを作成できます。
構文:
IntervalMatch (matchfield)(loadstatement | selectstatement )
IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )
IntervalMatch プレフィックスは、間隔をロードする LOAD または SELECT ステートメントの前に配置する必要があります。不連続データ ポイントを含む項目 (以下の例では Time) および追加キーは、IntervalMatch プレフィックスを含むステートメントの前に QlikView にロードされていなければなりません。このプレフィックスはデータベース テーブルからこの項目を読み取るのではなく、ロードされた間隔テーブルとキーを変換して追加列 (不連続数値データ点) を含むテーブルを生成します。また、新しいテーブルで不連続データ ポイントと間隔、キー項目の値の組み合わせごとにレコードが 1 つ存在するようレコード数を増やします。
間隔は重なる場合があり、不連続値は一致する間隔すべてにリンクされます。
拡張された IntervalMatch プレフィックスを使うと、不連続数値を 1 つ以上の数値間隔に一致させると同時に 1 つ以上の追加キーの値を一致させるテーブルを作成できます。これは強力かつ柔軟な機能で、時間の経過に伴って変化する軸(ゆっくり変化する軸) のあるトランザクションを連結するために使用できます。
未定義の間隔範囲が無視されないようにするには、間隔の下限または上限を構成する項目への NULL 値のマッピングを許可しなければならない可能性があります。その場合は、NullAsValue ステートメントを使用するか、不連続数値データ ポイントの前または後で NULL 値を数値に置き換える明示的なテストを実施します。
引数:
引数 | 説明 |
---|---|
matchfield | 間隔にリンクする不連続の数値が含まれた項目。 |
keyfield | 変換で一致させる追加属性が含まれた項目。 |
loadstatement or selectstatement | 最初の項目に各間隔の下限、2 つ目の項目に各間隔の上限を含むテーブルが生成されます。キー一致を使用している場合、3 つ目以降の項目には IntervalMatch ステートメントのキー項目が含まれます。間隔は常に閉じているので、終端は間隔に含まれます。数値以外の範囲では間隔が無視されます (未定義として対処)。 |
例1:
下記の 2 つのテーブルのうち、最初のテーブルは注文の製造開始時間と終了時間を定義します。2 つ目のテーブルには、個々のイベントが掲載されます。IntervalMatch プレフィックスを使用すると、2 つのテーブルが論理的に接続され、イベントの影響を受けた注文を特定したり、どのシフトでどの注文が処理されたかを確認することができます。
LOAD * Inline [
Time, Event, Comment
00:00, 0, Start of shift 1
01:18, 1, Line stop
02:23, 2, Line restart 50%
04:15, 3, Line speed 100%
08:00, 4, Start of shift 2
11:43, 5, End of production
];
OrderLog:
LOAD * INLINE [
Start, End, Order
01:00, 03:35, A
02:30, 07:58, B
03:04, 10:27, C
07:23, 11:43, D
];
//Link the field Time to the time intervals defined by the fields Start and End.
Inner Join IntervalMatch ( Time )
LOAD Start, End
Resident OrderLog;
結果:
OrderLog テーブルには現在と追加の列:Time が含まれます。レコードの数もまた増えます。
Time | Start | End | Order |
---|---|---|---|
00:00 |
- | - | - |
01:18 | 01:00 | 03:35 | A |
02:23 | 01:00 | 03:35 | A |
04:15 | 02:30 | 07:58 | B |
04:15 | 03:04 | 10:27 | C |
08:00 | 03:04 | 10:27 | C |
08:00 | 07:23 | 11:43 | D |
11:43 | 07:23 |
11:43 |
D |
例2: (keyfield の使用)
前述の例と同じで、ProductionLine をキー項目として追加します。
結果:
次のようなテーブル ボックスが作成されます。
ProductionLine | Time | Event | Comment | Order | Start | End |
---|---|---|---|---|---|---|
P1 | 00:00 | 0 | Start of shift 1 | - | - | - |
P2 | 01:00 | 0 | Start of shift 1 | - | - | - |
P1 | 01:18 | 1 | Line stop | A | 01:00 | 03:35 |
P1 | 02:23 | 2 | Line restart 50% | A | 01:00 | 03:35 |
P1 | 04:15 | 3 | Line speed 100% | B | 02:30 | 07:58 |
P1 | 04:15 | 3 | Line speed 100% | C | 03:04 | 10:27 |
P1 | 08:00 | 4 | Start of shift 2 | C | 03:04 | 10:27 |
P2 | 09:00 | 4 | Start of shift 2 | D | 07:23 | 11:43 |
P1 | 11:43 | 5 | End of production | - | - | - |
P2 | 11:43 | 5 | End of production | D | 07:23 | 11:43 |