Previous - função de script
Previous() descobre o valor da expressão expr usando dados do registro de entrada anterior. No primeiro registro de uma tabela interna, a função retornará NULL.
Sintaxe:
Previous(expr)
Tipo de dados de retorno: dual
Argumentos:
Argumento | Descrição |
---|---|
expr | A expressão ou campo que contém os dados a serem medidos. A expressão pode conter funções previous() aninhadas para acessar os registros anteriores. Os dados são lidos diretamente da fonte de entrada, o que permite fazer referência também aos campos não carregados no QlikView, isto é, mesmo que não tenham sido armazenados em seu banco de dados associado. |
Limitações:
No primeiro registro de uma tabela interna, a função retorna NULL.
Exemplo 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 '|');
Ao usar a função Previous() no comando Load, é possível comparar o valor atual de Sales com o valor precedente e usar o resultado em um terceiro 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 |
Exemplo 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;
Neste exemplo, excluímos os registros em que Month é 6 ou menos, usando uma cláusula WHERE. Isso ainda possibilita usar Previous(), pois a função pode fazer referência a dados que estão excluídos do carregamento.
Nesse caso, o cálculo de Increase para Month=7 faz referência ao valor Sales para Month=6, que está excluído do carregamento.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |