Previous - scriptfunctie
Previous() retourneert de waarde van de uitdrukking expr met gebruik van de gegevens uit de vorige invoerrecord. In de eerste record van een interne tabel retourneert de functie NULL.
Syntaxis:
Previous(expr)
Retourgegevenstypen: dual
Argumenten:
Argument | Beschrijving |
---|---|
expr | De uitdrukking die of het veld dat de gegevens bevat die moeten worden gemeten. De uitdrukking kan geneste functies previous() bevatten om toegang te krijgen tot eerdere records. Gegevens worden rechtstreeks opgehaald uit de invoerbron. Zo kan ook worden verwezen naar velden die niet zijn geladen in QlikView en dus zelfs als deze niet zijn opgeslagen in de bijbehorende associatieve database. |
Beperkingen:
In de eerste record van een interne tabel retourneert de functie NULL.
Voorbeeld 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 '|');
Door gebruik te maken van de functie Previous() in de opdracht Load, kunnen wij de huidige waarde van Sales vergelijken met de voorafgaande waarde en deze gebruiken in een derde veld, 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 |
Voorbeeld 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 dit voorbeeld worden de records waarin Month 6 of lager is, uitgesloten door een WHERE-clausule te gebruiken. Het is hierbij nog steeds mogelijk om Previous() te gebruiken, omdat de functie kan verwijzen naar gegevens die van de laadopdracht zijn uitgesloten.
In dit geval verwijst de berekening van Increase voor Month=7 naar de Sales-waarde voor Month=6, die van de laadopdracht is uitgesloten.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |