Previous - fonction de script
Previous() recherche la valeur de l'expression expr en utilisant les données de l'enregistrement d'entrée précédent. Dans le premier enregistrement d'une table interne, la fonction renvoie NULL.
Previous(expr)
double
Argument | Description |
---|---|
expr | Expression ou champ contenant les données à mesurer. L'expression peut contenir des fonctions previous() imbriquées pour permettre l'accès à des enregistrements antérieurs. La fonction recherche les données directement dans la source d'entrée, ce qui vous permet de faire aussi référence à des champs qui n'ont pas été chargés dans QlikView, c'est-à-dire même s'ils n'ont pas été stockés dans sa base de données associative. |
Dans le premier enregistrement d'une table interne, la fonction renvoie NULL.
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 '|');
En utilisant la fonction Previous() dans l'instruction Load, nous pouvons comparer la valeur active de Sales avec la valeur précédente et l'employer dans un troisième champ, 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 |
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;
Dans cet exemple, nous excluons les enregistrements où Month est inférieur ou égal à 6 en utilisant une clause WHERE. De cette façon, nous pouvons toujours utiliser Previous(), car la fonction peut faire référence à des données exclues du chargement.
Dans ce cas, le calcul de l'augmentation Increase pour Month=7 fait référence à la valeur de ventes Sales pour Month=6, qui est exclue du chargement.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |