Previous - función de script
Last updated: 1/9/2025
Previous() halla el valor de la expresión expr utilizando datos del registro de entrada anterior. En el primer registro de una tabla interna, la función devolverá NULL.
Sintaxis:
Previous(expr)
Tipo de datos que devuelve: dual
Argumentos:
| Argumento | Descripción |
|---|---|
| expr | La expresión o el campo que contiene los datos que se han de medir. La expresión puede contener funcione previous() anidadas para acceder a los registros más adelante. Los datos se recuperan directamente de la fuente de entrada; esto también hace posible consultar los campos que no se hayan cargado en QlikView, es decir, aunque no se hayan almacenado en la base de datos asociativa. |
Limitaciones:
En el primer registro de una tabla interna, la función devolverá NULL.
Ejemplo 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 '|');
Al usar la función Previous() en la sentencia Load, podemos comparar el valor actual de Sales con el valor precedente, y usarlo en un tercer 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 |
Ejemplo 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;
En este ejemplo, excluimos los registros donde Month es 6 o menos utilizando una cláusula WHERE. Esto todavía permite utilizar Previous() ya que la función puede referirse a los datos que se excluyen de la carga.
En este caso el cálculo de Increase para Month=7 remite al valor de Sales para Month=6, el cual queda excluido de la carga.
| Month | Sales | Increase |
|---|---|---|
| 7 | 22 | 1 |
| 8 | 23 | 1 |
| 9 | 32 | 9 |
| 10 | 35 | 3 |
| 11 | 40 | 5 |
| 12 | 41 | 1 |