Previous - funzione di script
Previous() trova il valore dell'espressione expr utilizzando i dati del record di input precedente. Nel primo record di una tabella interna, la funzione restituirà NULL.
Sintassi:
Previous(expr)
Tipo di dati restituiti: duale
Argomenti:
Argomento | Descrizione |
---|---|
expr | L'espressione o il campo contenente i dati da misurare. L'espressione può contenere funzioni previous() nidificate per accedere ai record precedenti. I dati vengono caricati direttamente dalla sorgente di input, rendendo possibile fare riferimento anche a campi che non sono stati caricati in QlikView, vale a dire persino se non sono stati memorizzati nel relativo database associativo. |
Limiti:
Nel primo record di una tabella interna, la funzione restituisce NULL.
Esempio 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 '|');
Utilizzando la funzione Previous() nell'istruzione Load, è possibile confrontare il valore attuale di Sales con il valore precedente e utilizzarlo in un terzo campo, 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 |
Esempio 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 questo esempio si escludono i record dove Month è minore o uguale a 6 utilizzando una clausola WHERE. Resta comunque possibile utilizzare Previous(), in quanto la funzione può fare riferimento ai dati esclusi dal caricamento.
In questo caso il calcolo di Increase per Month=7 si riferisce al valore di Sales per Month=6, che è escluso dal caricamento.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |