Zu Hauptinhalt springen

IntervalMatch

Mithilfe des Zusatzes IntervalMatch wird eine Tabelle angelegt, in der die diskreten numerischen Werte mit einem oder mehreren numerischen Intervallen abgeglichen werden und optional die Werte von einem oder mehreren zusätzlichen Schlüsseln.

Syntax:  

IntervalMatch (matchfield)(loadstatement | selectstatement )

IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )

 

Der Zusatz IntervalMatch muss vor dem Befehl LOAD oder SELECT angelegt werden, mit dem die Intervalle geladen werden. Das Feld, das die diskreten Datenpunkte (im Beispiel unten die Uhrzeit) und zusätzlichen Schlüssel enthält, muss vor dem Befehl mit dem IntervalMatch-Zusatz bereits in QlikView geladen sein. Der Zusatz liest dieses Feld nicht selbstständig in der Datenbanktabelle. Der Zusatz formt die geladene Intervalltabelle und Schlüssel in eine Tabelle um, die eine zusätzliche Spalte enthält: die diskreten numerischen Datenpunkte. Er erweitert auch die Anzahl der Datensätze, sodass die neue Tabelle über einen Datensatz für jede mögliche Kombination diskreter Datenpunkte, des Intervalls und des Werts der Schlüsselfelder verfügt.

Wenn sich die Intervalle überschneiden, werden die Werte jedem passenden Intervall zugeordnet.

Mithilfe des Zusatzes IntervalMatch wird eine Tabelle angelegt, in der die diskreten numerischen Werte mit einem oder mehreren numerischen Intervallen abgeglichen werden und zugleich ein Abgleich zwischen den Werten von einem oder mehreren zusätzlichen Schlüsseln erfolgt. Diese Funktion ist sehr leistungsfähig und flexibel. Sie lässt sich zum Verknüpfen von Transaktionen mit Dimensionen einsetzen, die sich im Laufe der Zeit verändern: sich langsam verändernde Dimensionen.

Um zu verhindern, dass nicht definierte Intervallbeschränkungen ignoriert werden, sollte es möglich sein, NULL-Werte anderen Feldern zuzuordnen, welche die untere oder obere Grenze des Intervalls bilden. Dieser Vorgang kann über den Befehl NullAsValue oder einen Test erfolgen, in dem NULL-Werte deutlich vor oder nach den diskreten numerischen Datenpunkten durch einen numerischen Wert ersetzt werden.

Argumente:  

IntervalMatch-Argumente
Argument Beschreibung
matchfield Das Feld, dessen numerische Werte in Intervallen gruppiert werden.
keyfield Felder, welche die zusätzlichen Attribute enthalten, die während der Umformung abgeglichen werden.
loadstatement or selectstatement Muss in einer Tabelle resultieren, in der das erste Feld den unteren Grenzwert jedes Intervalls, das zweite Feld den oberen Grenzwert jedes Intervalls und – bei Verwendung von Schlüsselwortabgleich – das dritte und alle folgenden Felder das/die Schlüsselfeld(er) enthalten, die im IntervalMatch-Befehl enthalten sind. Die Intervalle sind abgeschlossen, d. h. die Grenzwerte sind in den Intervallen enthalten. Nicht numerische Beschränkungen bewirken, dass das Intervall nicht berücksichtigt wird (undefiniert).

Beispiel 1:  

In den beiden unten stehenden Tabellen zeigt die erste Tabelle Bearbeitungsstart und -ende verschiedener Aufträge an. Die zweite führt die Zahl der diskreten Auslöser auf. Mithilfe des Zusatzes IntervalMatch werden die Tabellen logisch verknüpft, um z. B. herauszufinden, welche Aufträge von welchen Ereignissen betroffen waren und welche Aufträge von welcher Schicht verarbeitet wurden.

EventLog:
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;

Ergebnis:

Die Tabelle OrderLog enthält jetzt die zusätzliche Spalte: Time. Die Anzahl der Datensätze ist ebenfalls sichtbar.

Example 1
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

Beispiel 2: (verwenden von keyfield)

Gleiches Beispiel wie oben, mit zusätzlich ProductionLine als Schlüsselfeld.

EventLog:
LOAD * Inline [
Time, Event, Comment, ProductionLine
00:00, 0, Start of shift 1, P1
01:00, 0, Start of shift 1, P2
01:18, 1, Line stop, P1
02:23, 2, Line restart 50%, P1
04:15, 3, Line speed 100%, P1
08:00, 4, Start of shift 2, P1
09:00, 4, Start of shift 2, P2
11:43, 5, End of production, P1
11:43, 5, End of production, P2
];
 
OrderLog:
LOAD * INLINE [
Start, End, Order, ProductionLine
01:00, 03:35, A, P1
02:30, 07:58, B, P1
03:04, 10:27, C, P1
07:23, 11:43, D, P2
];
 
//Link the field Time to the time intervals defined by the fields Start and End and match the values
// to the key ProductionLine.
Inner Join
IntervalMatch ( Time, ProductionLine )
LOAD Start, End, ProductionLine
Resident OrderLog;

Ergebnis:

Sie können nun wie nachfolgend beschrieben eine Tabellenbox anlegen:

Example 2
ProductionLineTime EventCommentOrderStart End
P1

00:00

0Start of shift 1-- -
P201:000Start of shift 1---
P101:18 1Line stopA01:00 03:35
P102:23 2Line restart 50%A01:00 03:35
P104:15 3Line speed 100%B02:30 07:58
P104:15 3Line speed 100%C03:04 10:27
P108:00 4Start of shift 2C03:04 10:27
P209:00 4Start of shift 2D07:23 11:43
P111:43 5End of production-- -
P211:43 5End of productionD07:23 11:43

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!

Nehmen Sie am Analyse-Modernisierungsprogramm teil

Remove banner from view

Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com