Vorangehender LOAD-Befehl

Mit dem vorangehenden LOAD-Befehl können Sie eine Tabelle in einem Arbeitsschritt laden, jedoch trotzdem aufeinanderfolgende Umformungen definieren. Im Grunde ist es ein LOAD-Befehl, der über den Befehl LOAD oder SELECT unten lädt, ohne einen Zusatz für die Quelle wie From oder Resident anzugeben, was normalerweise der Fall ist. Sie können auf diese Art und Weise beliebig viele LOAD-Befehle stapeln. Der Befehl unten wird zuerst ausgewertet, dann der Befehl darüber usw., bis der oberste Befehl ausgewertet wurde.

Sie können auch den Befehl Resident verwenden, in den meisten Fällen ist ein vorangehender LOAD-Befehl jedoch schneller.

Ein weiterer Vorteil eines vorangehenden Load-Befehls ist es, dass die Berechnung an einem Ort stattfindet und in den darüberliegenden LOAD-Befehlen wiederverwendet wird.

Hinweis: Die folgenden Präfixe können nicht mit einem vorangehendenLOAD-Befehl verwendet werden:Join, Crosstable und Intervalmatch.

Beispiel 1: Umformen von Daten, die von einem SELECT-Befehl geladen wurden

Wenn Sie Daten aus einer Datenbank mit einem SELECT-Befehl laden, können Sie keine QlikView-Funktionen nutzen, um die Daten im SELECT-Befehl zu interpretieren. Sie müssen einen LOAD-Befehl dort, wo Sie die Datenumformung durchführen, über dem SELECT-Befehl hinzufügen.

In diesem Beispiel interpretieren wir ein Datum, das als String mit der Date#-Funktion von QlikView in einem LOAD-Befehl mit dem vorherigen SELECT-Befehl als Quelle gespeichert wurde.

LOAD Date#(OrderDate,’YYYYMMDD’) as OrderDate;
SQL SELECT OrderDate FROM … ;

Beispiel 2: Vereinfachen Ihres Skripts durch Wiederverwenden von Berechnungen

In diesem Beispiel benutzen wir eine Berechnung mehrmals im Skript:

LOAD ..., Age( FromDate + IterNo() – 1, BirthDate ) as Age, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;

Durch Einführung der Berechnung in einem ersten Schritt können wir sie in der Age-Funktion in einem vorangehenden LOAD-Befehl erneut verwenden:

LOAD ..., ReferenceDate, Age( ReferenceDate, BirthDate ) as Age; LOAD *, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;