Previous - Skriptfunktion
Previous() findet den Wert der Formel expr anhand von Daten aus dem vorherigen Eingabedatensatz. Im ersten Datensatz einer internen Tabelle liefert diese Funktion NULL.
Syntax:
Previous(expr)
Rückgabe Datentyp: dual
Argumente:
Argument | Beschreibung |
---|---|
expr | Die Formel oder das Feld mit den Daten, die gemessen werden sollen. Die Formel kann verschachtelte previous()-Funktionen enthalten, um weiter zurückliegende Datensätzen zu referenzieren. Die Werte werden direkt aus der zugrunde liegenden Datenquelle ermittelt, das heißt es kann auf Felder zugegriffen werden, die gar nicht in QlikView eingelesen wurden. |
Beschränkungen:
Im ersten Datensatz einer internen Tabelle liefert diese Funktion NULL.
Beispiel 1:
Sales2013:
Load *, (Sales - Previous(Sales) )as Increase Inline [
Month|Sales
1|12
2|13
3|15
4|17
5|21
6|21
7|22
8|23
9|32
10|35
11|40
12|41
] (delimiter is '|');
Durch den Einsatz der Funktion Previous() im Load-Befehl, lässt sich der aktuelle Wert von Sales mit dem vorhergehenden Wert vergleichen und dieser in einem dritten Feld, Increase, verwenden.
Month | Sales | Increase |
---|---|---|
1 | 12 | - |
2 | 13 | 1 |
3 | 15 | 2 |
4 | 17 | 2 |
5 | 21 | 4 |
6 | 21 | 0 |
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |
Beispiel 2:
Sales2013:
Load * Inline [
Month|Sales
1|12
2|13
3|15
4|17
5|21
6|21
7|22
8|23
9|32
10|35
11|40
12|41
] (delimiter is '|');
Sales:
NoConcatenate Load *, (Sales - Previous(Sales) )as Increase Resident Sales2013 where Month > 6;
Drop Table Sales2013;
In diesem Beispiel schließen wir die Datensätze aus, in denen Month 6 oder weniger beträgt. Dazu verwenden wir eine WHERE-Bedingung. Previous() kann trotzdem verwendet werden, da die Funktion auch auf nicht geladene Daten verweisen kann.
In diesem Fall bezieht sich die Berechnung von Increase für Month=7 auf den Wert Sales für Month=6, der aus den geladenen Daten ausgeschlossen wurde.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |