Add
Der Zusatz Add kann zu jedem LOAD- oder SELECT-Befehl im Skript hinzugefügt werden, um anzugeben, dass Datensätze zu einer anderen Tabelle hinzugefügt werden sollen. Er gibt auch an, dass dieser Befehl in einem partiellen Ladevorgang ausgeführt werden soll. Der Zusatz Add kann auch in einem Map-Befehl verwendet werden.
Syntax:
Add[only][Concatenate[(tablename)]] (loadstatement | selectstatement)
Add[only]mapstatement
Während einer normalen (nicht teilweisen) Skriptausführung funktioniert die Konstruktion AddLOAD wie ein normaler LOAD-Befehl. Datensätze werden generiert und in einer Tabelle gespeichert.
Wenn das Präfix Concatenate verwendet wird oder wenn bereits eine Tabelle mit dem gleichen Feldersatz vorhanden ist, werden die Datensätze an die betreffende vorhandene Tabelle angehängt. Andernfalls wird mit der Konstruktion AddLOAD eine neue Tabelle erstellt.
Ein teilweises Laden hat das gleiche Ergebnis. Der einzige Unterschied besteht darin, dass mit der Konstruktion AddLOAD nie eine neue Tabelle erstellt wird. Es ist immer bereits eine relevante Tabelle aus der vorherigen Skriptausführung vorhanden, an die die Datensätze angehängt werden müssen.
Dabei wird nicht geprüft, ob die Datensätze bereits vorhanden sind. Um Duplikate zu vermeiden, wird der Add-Zusatz häufig in Verbindung mit dem distinct-Qualifizierer oder einem where-Befehl benutzt.
Durch den Add Map...Using-Befehl wird auch bei der partiellen Ausführung des Skripts ein Mapping durchgeführt.
Argumente:
Argument | Beschreibung |
---|---|
only | Ein optionaler Zusatz, der bewirkt, dass der Befehl nur bei der partiellen, nicht aber bei der normalen (nicht partiellen) Ausführung des Skripts berücksichtigt wird. |
Beispiele und Ergebnisse:
Beispiel | Ergebnis |
---|---|
Tab1: LOAD Name, Number FROM Persons.csv; Add LOAD Name, Number FROM newPersons.csv; |
Bei der normalen Ausführung des Skripts werden die Daten aus Persons.csv geladen und in der QlikView-Tabelle Tab1 gespeichert. Die Werte aus der Datei NewPersons.csv werden in derselben QlikView-Tabelle zusammengefasst. Bei der partiellen Ausführung des Skripts werden die Daten aus NewPersons.csv geladen und in der QlikView-Tabelle Tab1 angehängt. Dabei wird nicht auf Dubletten geprüft. |
Tab1: SQL SELECT Name, Number FROM Persons.csv; Add LOAD Name, Number FROM NewPersons.csv (txt) where not exists(Name); |
Dabei wird geprüft, ob die zu ladenden Werte des Feldes Name in der zuvor geladenen Tabelle bereits existieren (zur Funktion exists siehe Inter-Record-Funktionen). Bei der normalen Ausführung des Skripts werden die Daten aus Persons.csv geladen und in der QlikView-Tabelle Tab1 gespeichert. Die Werte aus der Datei NewPersons.csv werden in derselben QlikView-Tabelle zusammengefasst. Bei der partiellen Ausführung des Skripts werden die Daten aus NewPersons.csv geladen und in der QlikView-Tabelle Tab1 angehängt. Dabei wird mit geprüft, ob Name in den zuvor geladenen Tabellendaten bereits existiert. |
Tab1: LOAD Name, Number FROM Persons.csv; Add Only LOAD Name, Number FROM NewPersons.csv (txt) where not exists(Name); |
Bei der normalen Ausführung des Skripts werden die Daten aus Persons.csv geladen und in der QlikView-Tabelle Tab1 gespeichert. Der Befehl zum Laden von NewPersons.csv bleibt unberücksichtigt. Bei der partiellen Ausführung des Skripts werden die Daten aus NewPersons.csv geladen und in der QlikView-Tabelle Tab1 angehängt. Dabei wird mit geprüft, ob Name in den zuvor geladenen Tabellendaten bereits existiert. |