LOAD precedente

O recurso LOAD precedente permite carregar uma tabela em um único passo, mas ainda define várias transformações sucessivas. Basicamente, é um comando LOAD que carrega do comando LOAD ou SELECT abaixo, sem especificar um qualificador de fonte como From ou Resident como faria normalmente. Você pode empilhar qualquer número de comandos LOAD dessa forma. A declaração no final será avaliada primeiro, seguida da declaração acima e assim por diante até que a declaração superior seja avaliada.

Você pode conseguir o mesmo resultado usando Resident, mas na maioria dos casos, um LOAD precedente será mais rápido.

Outra vantagem do load precedente é que você pode manter um cálculo em um lugar e reutilizá-lo em comandos LOAD colocados acima.

Nota: Os seguintes prefixos não podem ser usados em combinação com o LOAD precedente: Join, Crosstable e Intervalmatch.

Exemplo 1: Transformando os dados carregados por uma cálculo SELECT

Se você carregar dados de um banco de dados usando um comando SELECT, não será possível usar as funções do QlikView para interpretar os dados no comando SELECT. A solução é adicionar um comando LOAD, no qual você executará a transformação de dados, acima da declaração SELECT.

Neste exemplo, interpretamos uma data armazenada como um caractere usando a função do QlikView Date# em um comando LOAD, usando o comando SELECT precedente como fonte.

LOAD Date#(OrderDate,’YYYYMMDD’) as OrderDate;
SQL SELECT OrderDate FROM … ;

Exemplo 2: Simplificando o seu script reutilizando cálculos

Neste exemplo, usamos um cálculo mais de uma vez no script:

LOAD ..., Age( FromDate + IterNo() – 1, BirthDate ) as Age, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;

Ao introduzir o cálculo em uma primeira passagem, podemos reutilizá-lo na função Age em um LOAD precedente:

LOAD ..., ReferenceDate, Age( ReferenceDate, BirthDate ) as Age; LOAD *, Date( FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;