Aaneenschakelen
Een aaneenschakeling is een bewerking waarmee twee tabellen worden samengevoegd tot één tabel.
De twee tabellen worden aan elkaar toegevoegd door de één boven op de andere te stapelen, met een kolom voor elke distinctieve kolomnaam. De gegevens worden niet gewijzigd en de resulterende tabel bevat hetzelfde aantal records als de twee originele tabellen samen. Verschillende aaneenschakelingsbewerkingen kunnen na elkaar worden uitgevoerd, zodat de resulterende tabel de aaneenschakeling is van verschillende tabellen.
Automatisch aaneenschakelen
Als de veldnamen en het aantal velden van twee of meer geladen tabellen exact gelijk zijn, zal Qlik Sense de inhoud van de verschillende opdrachten automatisch aaneenschakelen in één tabel.
Automatisch aaneenschakelen is alleen mogelijk als het aantal en de namen van de velden exact gelijk zijn. De volgorde van de twee opdrachten LOAD is willekeurig, maar de tabel krijgt de naam van de tabel die als eerste is geladen.
Doe het volgende:
- Open de Editor voor laden van gegevens in de Scripting Tutorialapp.
- Klik op het tabblad Dates.
- Klik op Gegevens laden.
- Kopieer de opdracht LOAD voor Table2 naar een nieuwe regel in de sectie Dates van het script. Hierdoor worden de gegevens tweemaal geladen. Geef de tweede tabel de naam Table2a.
- Klik op Gegevens laden.
- Open de gegevensmodelviewer.
- Klik op Voorbeeld weergeven.
Op basis van het load-script dat u tot nu toe hebt geschreven laadt Qlik Sense 628 regels uit het gegevensbestand Dates.xlsx in Table2.
U kunt ook het bestaande script verwijderen en het volgende kopiëren en plakken:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Uw script zou er als volgt moeten uitzien:
Qlik Sense laadt Table2 niet, gevolgd door Table2a. In plaats daarvan wordt gedetecteerd dat Table2a dezelfde veldnamen en hetzelfde aantal velden heeft als Table2. Daarna worden de gegevens van Table2a aan Table2 toegevoegd, waarna de tabel Table2a wordt verwijderd. Het resultaat is dat Table2 nu 1256 regels heeft.
Alleen Table2 is gemaakt. Selecteer Table2. De tabel heeft 256 rijen.
Geforceerd aaneenschakelen
Zelfs als twee of meer tabellen niet exact dezelfde set velden hebben, kunt u de tabellen in Qlik Sense toch geforceerd aaneenschakelen. Daarvoor gebruikt u de prefix Concatenate in het script, waarmee een tabel met een andere benoemde tabel of met de als laatste gemaakte tabel wordt aaneengeschakeld.
Doe het volgende:
- Bewerk de opdracht LOAD voor Table2a door Concatenate toe te voegen en Week als opmerking aan te merken.
- Klik op Gegevens laden.
- Open de gegevensmodelviewer.
- Klik op Table2 in de gegevensmodelviewer en klik op Voorbeeld.
- Klik op Week in Table2. Het voorbeeld geeft aan dat het aantal niet-null-waarden voor het veld 628 is. Als u echter op een van de overige velden klikt, ziet u dat het aantal niet-null-waarden 1256 is. Week is slechts eenmaal geladen, vanuit Table2. Het aantal waarden of records is de som van het aantal records in Table2 en Table2a.
Uw script moet er nu als volgt uitzien:
Table2a:
Concatenate LOAD
"Date",
Month (Date) as "Month",
Quarter,
// "Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Door Week uit te commentariëren zorgen wij ervoor dat de tabellen niet identiek zijn.
Nu kunt u zien dat tabel Table2a niet is gemaakt.
De tabel bevat de velden Date, Month, Quarter, Week en Year. Het veld Week wordt nog steeds weergegeven, omdat het is geladen vanuit Table2.
Aaneenschakelen voorkomen
Als de veldnamen en het aantal velden van twee of meer geladen tabellen exact gelijk zijn, zal Qlik Sense de inhoud van de verschillende opdrachten automatisch aaneenschakelen in één tabel. Dit kan worden voorkomen met een NoConcatenate-opdracht. De tabel die wordt geladen met de toegewezen LOAD- of SELECT-instructie, wordt vervolgens niet aaneengeschakeld met de bestaande tabel.
Doe het volgende:
- Om de inhoud van de twee tabellen volledig te kunnen scheiden voegt u NoConcatenate toe aan de opdracht LOAD in Table2a en geeft u de velden nieuwe namen om te voorkomen dat Qlik Sense een synthetische sleutel op basis van de overeenkomstige velden creëert. Merk Week in Table2 aan als opmerking, zodat de twee tabellen dezelfde waarden bevatten.
- Klik op Gegevens laden.
- Open de gegevensmodelviewer.
- Nu we onze demonstratie van aaneenschakeling hebben voltooid, hebben we Table2a niet langer nodig. Verwijder alle rijen in de opdracht LOAD voor Table2a en klik op Gegevens laden.
Uw script moet er nu als volgt uitzien:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
NoConcatenate LOAD
"Date" as "Date2",
Month (Date) as "Month2",
Quarter as "Quarter2",
"Week" as "Week2",
"Year" as "Year2"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Nu kunt u zien dat de twee tabellen volledig van elkaar zijn gescheiden.