Ana içeriğe geç

Birleştirme

Birleştirme, iki tabloyu alan ve bunları bir tabloda birleştiren bir işlemdir.

İki tablo, her farklı sütun adı için bir sütunla birlikte biri diğerinin üzerine yığınlanarak birbirlerine eklenir. Veri değiştirilmez ve ortaya çıkan tablo iki orijinal tabloyla aynı sayıda kayıt içerir. Ortaya çıkan tablonun ikiden fazla tablo için birleştirilmesini sağlamak amacıyla sırayla birkaç birleştirme işlemi gerçekleştirilebilir.

Otomatik birleşim

İki veya daha fazla yüklü tablonun alan adları ve alan sayısı tam olarak aynıysa, Qlik Sense farklı deyimlerin içeriğini otomatik olarak bir tabloda birleştirir.

Alanların sayısı ve adları, otomatik birleştirmenin gerçekleşebilmesi için tam olarak aynı olmalıdır. İki LOAD deyiminin sırası rastgeledir ancak tabloya, önce yüklenen tablonun adı verilecektir.

Aşağıdakileri yapın:

  1. Veri yükleme düzenleyicisini Scripting Tutorial uygulamasında açın.
  2. Dates sekmesine tıklayın.
  3. Verileri yükle'ye tıklayın.
  4. O ana kadar yazdığınız komut dosyasına bağlı olarak Qlik Sense, Dates.xlsx veri dosyasından Table2 tablosuna 628 satır yükler.

    Veri yükleme ilerleme penceresi
    Data load progress window

  5. Dates bölümündeki kodda yeni bir satıra Table2 için LOAD deyimini kopyalayıp yapıştırın. Bu, verilerin iki defa yüklenmesini sağlar. İkinci tabloya Table2a adını verin.
  6. Ayrıca, mevcut kodu silip yerine şunu kopyalayıp yapıştırabilirsiniz:

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

    Kodunuz şöyle görünmelidir:

    Dates sekmesinde komut dosyası
    Load script in Dates tab.

  7. Verileri yükle'ye tıklayın.
  8. Qlik Sense, Table2 ve ardından Table2a tablolarını yüklemez. Bunun yerine, Table2a tablosunun Table2 tablosuyla aynı alan adlarına ve alan sayısına sahip olduğunu tanır. Ardından Table2a tablosunun verilerini Table2 tablosuna ekler ve Table2a tablosunu siler. Sonuç olarak Table2 tablosu 1.256 satıra sahip olur.

    Veri yükleme ilerleme penceresinde birleştirme
     Concatenation in data load progress window.

  9. Veri modeli görüntüleyicisi'ni açın.
  10. Önizlemeyi göster öğesine tıklayın.
  11. Yalnızca Table2 oluşturulur. Table2 öğesini seçin. Tabloda 256 satır vardır.

    Table2 tablosunu gösteren veri modeli görüntüleyicisi
    Data model viewer showing Table2.

Zorunlu birleşim

İki veya daha fazla tablo tam olarak aynı alan setine sahip olmasa da Qlik Sense uygulamasını iki tabloyu birleştirmeye zorlamak mümkündür. Bu, kodda bir tabloyu başka bir adlandırılmış tabloyla veya en son oluşturulan tabloyla birleştiren Concatenate önekiyle gerçekleştirilir.

Aşağıdakileri yapın:

  1. Concatenate ekleyerek ve Week değerini derleme dışında bırakarak Table2a için LOAD deyimini düzenleyin.
  2. Kodunuz şu şekilde görünmelidir:

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

    Week öğesine yorum ekleyerek, tabloların aynı olmamasını sağlarız.

  3. Verileri yükle'ye tıklayın.
  4. Veri modeli görüntüleyicisi'ni açın.
  5. Artık Table2a oluşturulmadığını görebildiğiniz.

  6. Veri modeli görüntüleyicisinde Table2 tablosuna tıklayın ve ardından Önizleme öğesine tıklayın.
  7. Tablo, Date, Month, Quarter, Week ve Year alanlarına sahiptir. Week alanı, Table2'den yüklendiği için hala gösterilmektedir.

  8. Table2 tablosundaki Week öğesine tıklayın. Önizlemede, alan için null olmayan değerlerin sayısının 628 olduğu görülür. Fakat diğer herhangi bir alana tıklarsanız null olmayan değerlerin sayısının 1256 olduğunu görürsünüz. Week, Table2 tablosundan yalnızca bir kere yüklenmiştir. Ortaya çıkan değerlerin veya kayıtların sayısı, Table2 ve Table2a içindeki kayıt sayılarının toplamıdır.

Birleşimi engelleme

İki veya daha fazla yüklü tablonun alan adları ve alan sayısı tam olarak aynıysa, Qlik Sense farklı deyimlerin içeriğini otomatik olarak bir tabloda birleştirir. Bu, bir NoConcatenate deyimiyle engellenebilir. İlişkilendirilmiş LOAD veya SELECT deyimiyle yüklenen tablo, bu durumda var olan tabloyla birleştirilmez.

Aşağıdakileri yapın:

  1. İki tablonun içeriklerini tamamen ayırmak için, Table2a tablosundaki LOAD deyimine NoConcatenate ekleyin ve Qlik Sense öğesinin eşleşen alanları temel alarak yapay anahtar oluşturmaması için alanları yeniden adlandırın. Table2 tablosundaki Week öğesini derleme dışında bırakarak iki tablonun aynı alanlara sahip olmasını sağlayın.
  2. Kodunuz şu şekilde görünmelidir:

    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. Verileri yükle'ye tıklayın.
  4. Veri modeli görüntüleyicisi'ni açın.
  5. Artık iki tablonun tamamen ayrılmış olduğunu görebilirsiniz.

    Table2 ve Table 2a tablolarını gösteren veri modeli görüntüleyicisi
    Data model viewer showing Table2 and Table 2a.

  6. Birleştirmeyi göstermeyi tamamladığımıza göre, artık Table2a tablosuna ihtiyacımız olmayacak. Table2a tablosu için LOAD deyimindeki tüm satırları silin ve ardından Verileri yükle'ye tıklayın.