Konkatenowanie | Qlik Cloud Pomoc
Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Konkatenowanie

Ostatnia aktualizacja: 30.09.2026

Łączenie to operacja polegająca na połączeniu dwóch tabel w jedną.

Wspomniane dwie tabele są dodawane do siebie przez umieszczenie jednej nad drugą z kolumną utworzoną dla każdej odrębnej nazwy kolumny. Dane nie są zmieniane i tabela wynikowa zawiera tę samą liczbę rekordów co dwie oryginalne tabele łącznie. Możliwe jest wykonanie kilku operacji łączenia sekwencyjnie co oznacza, że tabela wynikowa może zostać połączona na podstawie więcej niż dwóch tabel.

Łączenie automatyczne

Jeśli nazwy pól i liczba pól dwóch lub więcej załadowanych tabel są dokładnie takie same, aplikacja automatycznie skonkatenuje zawartość różnych instrukcji w jedną tabelę.

Aby nastąpiło łączenie automatyczne, liczba i nazwy pól muszą być identyczne. Kolejność dwóch instrukcji LOAD jest dowolna, ale danej tabeli zostanie nadana nazwa pierwszej załadowanej tabeli.

  1. Otwórz Edytor ładowania danych w Scripting Tutorial aplikacji.
  2. Kliknij kartę Date.
  3. Kliknij polecenie Ładuj dane.
  4. W oparciu o skrypt ładowania napisany do tej pory, aplikacja ładuje 628 wierszy z pliku danych Dates.xlsx do Table2.

    Okno postępu ładowania danych

    Okno postępu ładowania danych
  5. W nowym wierszu w skrypcie w sekcji Dates skopiuj i wklej instrukcję LOAD dla Table2. Spowoduje to dwukrotne załadowanie danych. Nadaj nazwę drugiej tabeli Table2a.
  6. Można również usunąć istniejący skrypt oraz skopiować i wkleić następujący skrypt:

    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);

    Skrypt powinien wyglądać następująco:

    Skrypt ładowania na karcie Dates

    Skrypt ładowania na karcie Dates.
  7. Kliknij polecenie Ładuj dane.
  8. Aplikacja nie ładuje Table2, a następnie Table2a. Zamiast tego, rozpoznaje, że tabela Table2a zawiera te same nazwy pól i liczbę pól co Table2. Następnie dodaje dane z Table2a do Table2 i usuwa tabelę Table2a. W wyniku tych operacji tabela Table2 zawiera teraz 1256 wierszy.

    Konkatenacja w oknie postępu ładowania danych

    Konkatenacja w oknie postępu ładowania danych.
  9. Otwórz Przeglądarkę modelu danych.
  10. Kliknij przycisk Pokaż podgląd.
  11. Utworzona została tylko tabela Table2. Wybierz Table2. Tabela zawiera 1256 wierszy.

    Przeglądarka modelu danych pokazuje Table2

    Przeglądarka modelu danych z tabelą Table2.

Łączenie wymuszone

Nawet jeśli dwie lub więcej tabel nie ma dokładnie takiego samego zestawu pól, nadal można wymusić na aplikacji konkatenowanie tych dwóch tabel. W skrypcie służy do tego prefiks Concatenate, który dokonuje łączenia tabeli z inną wskazaną z nazwy tabelą lub z ostatnio utworzoną tabelą.

  1. Wyedytuj instrukcję LOAD dla tabeli Table2a, dodając ciąg Concatenate i w komentarzu ujmij ciąg Week.
  2. Skrypt powinien teraz wyglądać następująco:

    Table2a:
    					Concatenate LOAD
    					"Date",
    					Month (Date) as "Month",
    					Quarter,
    					// "Week",
    					"Year"
    					FROM [lib://DataFiles/Dates.xlsx]
    				(ooxml, embedded labels, table is Dates);

    Oznaczenie parametru Week jako komentarza sprawia, że tabele nie są identyczne.

  3. Kliknij polecenie Ładuj dane.
  4. Otwórz Przeglądarkę modelu danych.
  5. Nie została utworzona tabela Table2a.

  6. Kliknij Table2 w przeglądarce modelu danych, a następnie kliknij przycisk Podgląd.
  7. Tabela zawiera pola Date, Month, Quarter, Week i Year. Pole Week jest nadal wyświetlane, ponieważ zostało załadowane z tabeli Table2.

  8. Kliknij pozycję Week w sekcji Table2. W podglądzie widać teraz, że liczba wartości niezerowych dla pola wynosi 628. Jednak po kliknięciu dowolnego z pozostałych pól widać, że liczba wartości niezerowych wynosi 1256. Week załadowano tylko raz z Table2. Liczba wartości lub rekordów jest sumą liczby rekordów w tabelach Table2 i Table2a.

Zapobieganie łączeniu

Jeśli nazwy pól i liczba pól dwóch lub więcej załadowanych tabel są dokładnie takie same, aplikacja będzie automatycznie konkatenować zawartość różnych instrukcji w jedną tabelę. Można tego uniknąć za pomocą instrukcji NoConcatenate. Tabela załadowana powiązaną z nią instrukcją LOAD lub SELECT nie będzie wtedy łączona z istniejącą tabelą.

  1. Aby móc całkowicie rozdzielić zawartość dwóch tabel, dodaj NoConcatenate do instrukcji LOAD w Table2a i zmień nazwy pól, tak aby aplikacja nie utworzyła klucza syntetycznego na podstawie pasujących pól. Usuń znaczniki komentowania przy ciągu Week w tabeli Table2, aby dwie tabele zawierały te same pola.
  2. Skrypt powinien teraz wyglądać następująco:

    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. Kliknij polecenie Ładuj dane.
  4. Otwórz Przeglądarkę modelu danych.
  5. Obecnie obie tabele są całkowicie od siebie oddzielone.

    Przeglądarka modelu danych z tabelami Table2 i Table 2a

    Przeglądarka modelu danych z tabelami Table 2 i Table 2a.
  6. Po zakończeniu prezentacji konkatenowania tabela Table2a nie jest już potrzebna. Usuń wszystkie wiersze w instrukcji LOAD dla Table2a i kliknij przycisk Załaduj dane.

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!