Preceding LOAD

La funzione preceding LOAD consente di caricare una tabella in un solo passaggio, tuttavia definisce diverse trasformazioni successive. Fondamentalmente si tratta di un'istruzione LOAD che viene caricata da un'istruzione LOAD o SELECT sottostante, senza la specifica di un qualificatore di espressione quale From o Resident come si farebbe normalmente. In questo modo è possibile impilare qualsiasi numero di istruzioni LOAD. L'istruzione in fondo viene valutata per prima, quindi viene valutata l'espressione sopra e così via fino ad arrivare alla valutazione dell'istruzione nella parte superiore.

Lo stesso risultato può essere ottenuto mediante l'istruzione Resident, tuttavia, nella maggior parte dei casi l'utilizzo di un'istruzione preceding LOAD è l'alternativa più rapida.

Un altro vantaggio offerto dall'istruzione preceding load consiste nella possibilità di mantenere il calcolo in un punto e di poterlo riutilizzare nelle istruzioni LOAD collocate sopra.

Nota: I seguenti prefissi non possono essere utilizzati insieme all'istruzione preceding LOAD:Join, Crosstable Intervalmatch.

Esempio 1: Trasformazione dei dati caricati mediante un'istruzione SELECT

Se si caricano i dati da un database mediante un'istruzione SELECT, non è possibile utilizzare le funzioni di QlikView per interpretare i dati in tale istruzione SELECT. La soluzione consiste nell'aggiungere un'istruzione LOAD, in cui viene eseguita la trasformazione dei dati, sopra all'istruzione SELECT.

In questo esempio i dati vengono interpretati come stringa mediante la funzione di QlikView Date# in un'istruzione LOAD utilizzando l'istruzioneSELECT precedente come sorgente.

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

Esempio 2: Semplificazione di uno script mediante il riutilizzo dei calcoli

In questo esempio i calcoli vengono riutilizzati più volte nello script:

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

Mediante l'introduzione del calcolo nel primo passaggio, è possibile riutilizzarlo nella funzione Age in un'istruzione preceding LOAD:

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