Previous - skriptfunktion
Previous() hittar värdet för expr-uttrycket med hjälp av data från den tidigare indataposten. För den första posten i en intern tabell kommer funktionen att returnera NULL.
Syntax:
Previous(expr)
Returnerad datatyp: dual
Argument:
Argument | Beskrivning |
---|---|
expr | Det uttryck eller fält som innehåller de data som ska mätas. Uttrycket kan innehålla kapslade funktioner previous() för att komma åt poster längre bak. Data hämtas direkt från indatakällan och man kan således referera även till fält som inte lästs in i QlikView, dvs. även om de inte har lagrats i dess associativa databas. |
Begränsningar:
För den första posten i en intern tabell kommer funktionen att returnera NULL.
Exempel 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 '|');
Genom att använda funktionen Previous() i satsen Load kan vi jämföra det aktuella värdet av Sales med föregående värde och använda det i ett tredje fält, Increase.
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 |
Exempel 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;
I det här exemplet utesluter vi de poster där Month är 6 eller mindre genom att använda en WHERE-sats. Det gör att det fortfarande går att använda Previous() som den funktion som kan hänvisa till data som uteslutits från laddningen.
I det här fallet hänvisar beräkningen av Increase för Month=7 till Sales-värdet för Month=6 som uteslutits från laddningen.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |