Ga naar hoofdinhoud

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:

  1. Open de Editor voor laden van gegevens in de Scripting Tutorialapp.
  2. Klik op het tabblad Dates.
  3. Klik op Gegevens laden.
  4. 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.

    Venster met voortgang laden van gegevens
    Data load progress window

  5. 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.
  6. 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:

    Load-script op tabblad Dates
    Load script in Dates tab.

  7. Klik op Gegevens laden.
  8. 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.

    Aaneenschakeling in venster met voortgang laden van gegevens
     Concatenation in data load progress window.

  9. Open de gegevensmodelviewer.
  10. Klik op Voorbeeld weergeven.
  11. Alleen Table2 is gemaakt. Selecteer Table2. De tabel heeft 256 rijen.

    Gegevensmodelviewer toont Table2
    Data model viewer showing Table2.

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:

  1. Bewerk de opdracht LOAD voor Table2a door Concatenate toe te voegen en Week als opmerking aan te merken.
  2. 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.

  3. Klik op Gegevens laden.
  4. Open de gegevensmodelviewer.
  5. Nu kunt u zien dat tabel Table2a niet is gemaakt.

  6. Klik op Table2 in de gegevensmodelviewer en klik op Voorbeeld.
  7. De tabel bevat de velden Date, Month, Quarter, Week en Year. Het veld Week wordt nog steeds weergegeven, omdat het is geladen vanuit Table2.

  8. 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.

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:

  1. 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.
  2. 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); 

  3. Klik op Gegevens laden.
  4. Open de gegevensmodelviewer.
  5. Nu kunt u zien dat de twee tabellen volledig van elkaar zijn gescheiden.

    De gegevensmodelviewer met Table2 en Table 2a
    Data model viewer showing Table2 and Table 2a.

  6. 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.