Add
Het voorvoegsel Add kan aan elke LOAD- of SELECT-opdracht in het script worden toegevoegd om op te geven dat er records aan een andere tabel moeten worden toegevoegd. Dit geeft ook aan dat deze opdracht met behulp van gedeeltelijk laden moet worden uitgevoerd. Het voorvoegsel Add kan ook worden gebruikt in een Map-opdracht.
Syntaxis:
Add[only][Concatenate[(tablename)]] (loadstatement | selectstatement)
Add[only]mapstatement
Tijdens een normale (niet-gedeeltelijk) lading, werkt de constructie AddLOAD als een normale LOAD-opdracht. Records worden gegenereerd en opgeslagen in een tabel.
Als de prefix Concatenate wordt gebruikt, of als er een tabel met dezelfde verzameling velden aanwezig is, worden de records toegevoegd aan de relevante bestaande tabel. Anders wordt met de constructie AddLOAD een nieuwe tabel gemaakt.
Bij een gedeeltelijke lading gebeurt hetzelfde. Het enige verschil is dat bij de constructie AddLOAD nooit een nieuwe tabel wordt gemaakt. Er bestaat altijd een relevante tabel van de vorige uitvoering van het script waaraan de records moeten worden toegevoegd.
Er wordt geen controle op duplicaten uitgevoerd. Daarom bevat een opdracht waarbij het prefix Add wordt gebruikt gewoonlijk een distinct-kwalificatie of een where-clausule om duplicaten te voorkomen.
De opdracht Add Map...Using zorgt ervoor dat de toewijzing ook plaatsvindt als het script gedeeltelijk wordt uitgevoerd.
Argumenten:
Argument | Beschrijving |
---|---|
only | Een optionele kwalificatie die aangeeft dat de opdracht moet worden genegeerd tijdens het normaal (niet gedeeltelijk) opnieuw laden van gegevens. |
Voorbeelden en resultaten:
Voorbeeld | Resultaat |
---|---|
Tab1: LOAD Name, Number FROM Persons.csv; Add LOAD Name, Number FROM newPersons.csv; |
Tijdens normaal opnieuw laden worden gegevens geladen uit Persons.csv en opgeslagen in de QlikView-tabel Tab1. Gegevens uit NewPersons.csv worden vervolgens samengevoegd met dezelfde QlikView-tabel. Tijdens het gedeeltelijk opnieuw laden worden gegevens geladen uit NewPersons.csv en toegevoegd aan de QlikView-tabel Tab1. Er wordt geen controle op duplicaten uitgevoerd. |
Tab1: SQL SELECT Name, Number FROM Persons.csv; Add LOAD Name, Number FROM NewPersons.csv (txt) where not exists(Name); |
Controle op duplicaten wordt uitgevoerd door te kijken of Name bestaat in de eerder geladen tabelgegevens (bekijk de functie exists onder inter-recordfuncties). Tijdens normaal opnieuw laden worden gegevens geladen uit Persons.csv en opgeslagen in de QlikView-tabel Tab1. Gegevens uit NewPersons.csv worden vervolgens samengevoegd met dezelfde QlikView-tabel. Tijdens het gedeeltelijk opnieuw laden worden gegevens geladen uit NewPersons.csv die wordt toegevoegd aan de QlikView-tabel Tab1. Controle op duplicaten wordt uitgevoerd door te kijken of Name bestaat in de eerder geladen tabelgegevens. |
Tab1: LOAD Name, Number FROM Persons.csv; Add Only LOAD Name, Number FROM NewPersons.csv (txt) where not exists(Name); |
Tijdens normaal opnieuw laden worden gegevens geladen uit Persons.csv en opgeslagen in de QlikView-tabel Tab1. De opdracht voor het laden van NewPersons.csv wordt genegeerd. Tijdens het gedeeltelijk opnieuw laden worden gegevens geladen uit NewPersons.csv die wordt toegevoegd aan de QlikView-tabel Tab1. Controle op duplicaten wordt uitgevoerd door te kijken of Name bestaat in de eerder geladen tabelgegevens. |