Voorafgaande LOAD

Met de functie voor voorafgaande LOAD kunt u een tabel in één keer laden, maar toch meerdere, opeenvolgende transformaties definiëren. In wezen is het een LOAD-opdracht die moet worden geladen vanuit de onderstaande LOAD- of SELECT-opdracht, zonder dat een bronkwalificatie zoals From of Resident wordt opgegeven, die normaliter wordt gebruikt. Op deze manier kunt u elk gewenste aantal LOAD-opdrachten stapelen. De opdracht onderaan wordt eerst geëvalueerd, dan de opdracht erboven, enzovoort, totdat de bovenste opdracht is geëvalueerd.

U kunt hetzelfde resultaat verkrijgen door Resident te gebruiken, maar in de meeste gevallen werkt een voorafgaande LOAD sneller.

Een ander voordeel van een voorafgaande load is dat u een berekening op één plaats kunt houden en opnieuw kunt gebruiken in LOAD-opdrachten erboven.

Opmerking: De volgende prefixen kunnen niet worden gebruikt in combinatie met voorafgaande LOAD:Join, Crosstable en Intervalmatch.

Voorbeeld 1: Gegevens transformeren die zijn geladen met een SELECT-opdracht

Als u gegevens uit een database laadt met een SELECT-opdracht, kunt u geen QlikView-functies gebruiken om gegevens te interpreteren in de SELECT-opdracht. De oplossing is dat u een LOAD-opdracht moet toevoegen waar u gegevenstransformatie uitvoert, boven de SELECT-opdracht.

In dit voorbeeld interpreteren we een datum die is opgeslagen als een tekenreeks met de QlikView-functie Date# in een LOAD-opdracht. Hierbij gebruiken we de voorafgaande opdracht SELECT als bron.

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

Voorbeeld 2: Het script vereenvoudigen door berekeningen opnieuw te gebruiken

In dit voorbeeld gebruiken we een berekening meer dan eens in het script:

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

Als de berekening de eerste keer wordt gebruikt, kan deze opnieuw worden gebruikt in de functie Age in een voorafgaande LOAD:

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