Wenn eine Abfrage mehrere Quellen umfasst, erstellen Sie in Builder Beziehungen, um festzulegen, wie die Datensätze auf der Grundlage eines gemeinsamen Wertes, wie z. B. einer Entitäts-ID, Kontonummer oder Abteilung, kombiniert werden sollen.
Hinweis: In SQL Editor, verwenden Sie eine JOIN
Klausel um Beziehungen zwischen den Quellen einer Abfrage zu definieren.
Übersicht
Angenommen, Ihre Abfrage enthält eine Faktentabelle Aufträge und eine Dimensionstabelle Kunden als Quellen. Auf der Registerkarte Beziehungen können Sie festlegen, wie die Aufträge miteinander verbunden werden sollen:
AuftragID | KundenID | OrderDate |
---|---|---|
111222 | 001 | 01/02/2021 |
121212 | 010 | 02/01/2021 |
212121 | 100 | 01/12/2021 |
an die Kunden:
KundenID | Kundenname | Region |
---|---|---|
001 | AAA Chemische Reinigungen | Nord |
010 | Wayne-Technologie | Ost |
011 | Señor Taqueria | West |
Tipp:Um eine Spalte mit eindeutigen Werten - z. B. CustomerID- in einer Dimensionstabelle zu identifizieren, markieren Sie sie als Schlüssel Spalte.
Da beide Tabellen Kunden-IDs enthalten, können Sie eine Beziehung auf der Grundlage ihrer jeweiligen CustomerID Spalten erstellen und auswählen, wie ihre Datensätze kombiniert - oder verbunden - werden sollen.
Eine Linksverknüpfung Beziehung gibt alle Datensätze aus der ersten Quelle auf der linken Seite und alle auch übereinstimmenden in der anderen zurück.
Tipp: Um Duplikate in einer Linksverknüpfungzu vermeiden, stellen Sie sicher, dass die zweite Quellspalte auf der rechten in der Beziehung eindeutige Werte enthält, z. B. die Schlüsselspalte einer Dimensionstabelle.
In der Beziehung zwischen den Tabellen "Bestellungen" und "Kunden" gibt Left join beispielsweise alle Bestellungen zurück, mit zusätzlichen Details zu denjenigen, deren Kunden-IDs in der Tabelle "Kunden" übereinstimmen. Aufträge mit Kunden-IDs , die nicht mit in der Tabelle Kunden übereinstimmen, enthalten Nullwerte für die zusätzlichen Kundendaten.
AuftragID | KundenID | Kundenname | OrderDate | Region |
---|---|---|---|---|
111222 | 001 | AAA Chemische Reinigungen | 01/02/2021 | Nord |
121212 | 010 | Wayne-Technologie | 02/01/2021 | Ost |
212121 | 100 | -------------------- | 01/12/2021 | ------- |
Eine Right join -Beziehung gibt alle -Datensätze aus der zweiten Quelle auf der rechten Seite zurück und auch alle -Datensätze, die in der anderen Quelle entsprechen.
Tipp: Um Duplikate in einer rechten Verknüpfungzu vermeiden, stellen Sie sicher, dass die erste Quellspalte auf der linken Seite in der Beziehung eindeutige Werte enthält, z. B. die Schlüsselspalte einer Dimensionstabelle.
Im Fall unserer Tabellen Aufträge und Kunden gibt Right join alle Kunden zurück, mit zusätzlichen Details für diejenigen, deren IDs in der Tabelle Aufträge übereinstimmen. Kunden mit den IDs , die nicht mit in der Tabelle "Aufträge" übereinstimmen, enthalten Nullwerte für die zusätzlichen Auftragsdaten.
AuftragID | KundenID | Kundenname | OrderDate | Region |
---|---|---|---|---|
111222 | 001 | AAA Chemische Reinigungen | 01/02/2021 | Nord |
121212 | 010 | Wayne-Technologie | 02/01/2021 | Ost |
-------- | 011 | Señor Taqueria | ------------- | West |
Eine Inner join Beziehung gibt nur Datensätze zurück, die in beiden Quellen erscheinen.
In der Beziehung zwischen den Tabellen "Orders" und "Customers" gibt Inner join nur Bestellungen von Kunden zurück, deren IDs in beiden Quellen übereinstimmen.
AuftragID | KundenID | Kundenname | OrderDate | Region |
---|---|---|---|---|
111222 | 001 | AAA Chemische Reinigungen | 01/02/2021 | Nord |
121212 | 010 | Wayne-Technologie | 02/01/2021 | Ost |
Eine Full join Beziehung gibt alle Datensätze von entweder Quelle zurück.
Im Beispiel unserer Tabellen Bestellungen und Kunden gibt Full join alle Bestellungen und Kunden zurück. Datensätze mit Kunden-IDs, die nur in einer Quelle übereinstimmen, enthalten Nullwerte für fehlende Daten.
AuftragID | KundenID | Kundenname | OrderDate | Region |
---|---|---|---|---|
111222 | 001 | AAA Chemische Reinigungen | 01/02/2021 | Nord |
121212 | 010 | Wayne-Technologie | 02/01/2021 | Ost |
-------- | 011 | Señor Taqueria | ------------- | West |
212121 | 100 | -------------------- | 01/12/2021 | ------- |
-->
Auf der Registerkarte Beziehungen definieren Sie, wie die verschiedenen Quellen der Abfrage zueinander in Beziehung stehen. Um diese Beziehung zu definieren, gleichen Sie die gemeinsamen Daten der Quellen ab und wählen aus, wie ihre Datensätze in den Abfrageergebnissen verbunden werden sollen.
Hinweis: Abfragebeziehungen sind kumulativ; sie bauen aufeinander auf. Die Quellen in einer Verknüpfung bestimmen die Spalten, die für die Verknüpfung mit anderen Quellen zur Verfügung stehen.
Schritt 1. Bestimmen Sie die zu verbindenden Quellen
Um die Beziehung einer Quelle mit anderen Quellen in der Abfrage zu definieren, ziehen Sie sie von Quellen auf die Registerkarte Beziehungen .
- Um die erste Beziehung zwischen den Quellen der Abfrage zu definieren, ziehen Sie zwei Quellen von Quellen zu Join 1.
- Um die Beziehung zwischen einer Quelle und den Quellen einer vorherigen Verknüpfung zu definieren, klicken Sie auf Weitere Verknüpfung hinzufügen, und ziehen Sie die Quelle aus Quellen in die neue Verknüpfung.
Hinweis: Wenn eine Abfrage mehrere Joins hat, ordnen Sie sie in der richtigen Reihenfolge an, da jeder Join von den Quellen des vorherigen Joins abhängt. Um eine Verbindung neu zu positionieren, wählen Sie Nach oben oder Nach unten aus dem entsprechenden Menü. Um eine Verknüpfung zu löschen, z. B. wenn die Abfrage ihre Quelle nicht mehr enthält, wählen Sie Entfernen aus dem Menü.
Schritt 2. Geben Sie an, wie sich die Quellen zueinander verhalten
Um die Beziehung zwischen Quellen zu definieren, können Sie gemeinsame Werte auf der Grundlage von zuordnen:
- Spalten mit entsprechenden Daten
- Ein berechnetes Feld, um die Werte einer Quelle nach Bedarf anzupassen, damit sie genau mit der anderen Quelle übereinstimmen
Tipp: Sie können nur Spalten desselben Datentyps verbinden. Um Daten mit unterschiedlichen Datentypen abzugleichen, z. B. wenn Konto-IDs in einer Quelle ganzzahlig und in der anderen Quelle Textstrings sind, bearbeiten Sie den Typ einer Spalte im Bereich Feldeigenschaften .
Wählen Sie in der Verknüpfung die entsprechenden Spalten aus jeder Quelle aus und legen Sie fest, wie die Datensätze auf der Grundlage ihrer Werte abgeglichen werden sollen.
Betreiber | Beschreibung |
---|---|
Gleich (=) | Findet Datensätze mit identischen Werten in beiden Quellen |
Nicht gleich (!=) | Gleicht Datensätze mit unterschiedlichen Werten in beiden Quellen ab, z. B. um Konto-IDs Kontonamen zuzuordnen |
Größer als (>) | Entspricht Datensätzen, wenn der numerische oder Datums-/Zeitwert der linken Quelle größer oder später ist als der Wert der rechten Quelle |
Größer als oder gleich (>=) | Stimmt mit Datensätzen überein, wenn der numerische oder Datums-/Zeitwert der linken Quelle identisch, größer oder später als der Wert der rechten Quelle ist |
Weniger als (<) | Stimmt mit Datensätzen überein, wenn der numerische oder Datums-/Zeitwert der linken Quelle kleiner oder früher ist als der Wert der rechten Quelle |
Kleiner als oder gleich (<=) | Stimmt mit Datensätzen überein, wenn der numerische oder Datums-/Zeitwert der linken Quelle identisch, kleiner oder früher als der Wert der rechten Quelle ist |
Um Werte zwischen Quellen genau zuzuordnen, können Sie eine Berechnung auf Quellenspalten anwenden. Um beispielsweise Kontonummern in einer Dimensionstabelle für die Kontenzuordnung zuzuordnen, müssen Sie möglicherweise Folgendes tun:
- Anpassen der Werte innerhalb einer einzelnen Quellspalte, z. B. um die ersten sechs Ziffern von Kontonummern in einer Faktentabelle der Bilanz zu extrahieren -
SS_LEFT(tb.account, 6)
- Verwenden Sie Werte aus den Spalten mehrerer Quellen, wie z. B. Kombinieren oder Verketten-Kontonummern und IDs aus der zuvor verknüpften Faktentabelle "Bilanz" bzw. der Dimensionstabelle "Entity Map" -
CONCAT(tb.account,entity.id)
- Definieren Sie ein gemeinsames Muster innerhalb der Werte einer Spalte, z. B. um die Kontonummer von Präfixen oder Suffixen in einer Faktentabelle zu isolieren -
tb.account LIKE __1005%
Hinweis: Um ein Muster zu definieren, können Sie Platzhalter verwenden, um zu ignorierende Zeichen darzustellen - einen Unterstrich (
_
) für ein einzelnes Zeichen oder ein Prozentzeichen (%
) für kein oder mehrere Zeichen.
Um eine Berechnung auf die Werte einer Quelle anzuwenden:
- Wählen Sie in der Verknüpfung Berechnetes Feld unter der Quelle mit den anzupassenden Werten.
- Ziehen Sie im Bereich Feldeigenschaften die Spalten, die in die Berechnung einbezogen werden sollen, von Quellen auf Eingeschlossene Spalten.
Hinweis: Um eine korrekte SQL zu gewährleisten, schließen Sie nur Spalten aus der ausgewählten Quelle ein.
- Stellen Sie unter Calculationdie SQL-Operation (Structured Query Language) zusammen, die auf die Werte der Spalten angewendet werden soll.
- Um sich auf eine Spalte in der Berechnung zu beziehen, klicken Sie auf sie oder wählen Sie In Berechnung einbeziehen aus dem Menü unter Eingeschlossene Spalten, oder geben Sie ihre Nummer in Klammern ein, z. B.
{1}+{2}
. - Um der Berechnung schnell einen SQL-Operator oder eine Funktion hinzuzufügen, wählen Sie diese aus dem Menü Berechnung aus.
- Um sich auf eine Spalte in der Berechnung zu beziehen, klicken Sie auf sie oder wählen Sie In Berechnung einbeziehen aus dem Menü unter Eingeschlossene Spalten, oder geben Sie ihre Nummer in Klammern ein, z. B.
- Wählen Sie in der Verknüpfung aus, wie Datensätze basierend auf den Werten der verknüpften Spalten abgeglichen werden sollen:
Betreiber Beschreibung Gleich (=) Findet Datensätze mit identischen Werten in beiden Quellen Nicht gleich (!=) Gleicht Datensätze mit unterschiedlichen Werten in beiden Quellen ab, z. B. um Konto-IDs Kontonamen zuzuordnen Ähnlich Wenn das berechnete Feld ein Muster mit Platzhaltern definiert, werden Datensätze mit Werten gefunden, die dem Muster entsprechen Nicht wie Wenn das berechnete Feld ein Muster mit Platzhaltern definiert, werden Datensätze mit Werten gefunden, die nicht mit dem Muster übereinstimmen Größer als (>) Stimmt mit Datensätzen überein, wenn der numerische oder Datums-/Zeitwert der linken Quelle größer oder später ist als der Wert der rechten Quelle Größer als oder gleich (>=) Stimmt mit Datensätzen überein, wenn der numerische oder Datums-/Zeitwert der linken Quelle identisch, größer oder später als der Wert der rechten Quelle ist Weniger als (<) Stimmt mit Datensätzen überein, wenn der numerische oder Datums-/Zeitwert der linken Quelle kleiner oder früher ist als der Wert der rechten Quelle Kleiner als oder gleich (<=) Stimmt mit Datensätzen überein, wenn der numerische oder Datums-/Zeitwert der linken Quelle identisch, kleiner oder früher als der Wert der rechten Quelle ist
Schritt 3. Definieren Sie beliebige zusammengesetzte Verbindungen
Eine einzelne Verknüpfung kann mehrere Werte zwischen ihren Quellen abbilden. Zur Zuordnung zusätzlicher Wertepaare innerhalb einer Verknüpfung:
- Klicken Sie auf Feld hinzufügen.
- Geben Sie die zusätzlichen Spalten oder berechneten Felder an, die zwischen den Quellen zugeordnet werden sollen.
- Wählen Sie aus, ob mehrere zugeordnete Werte (und) oder nur bestimmte Werte basierend auf den Daten (oder) verbinden soll.
Wenn mehrere Werte in einer Quelle jeweils unterschiedlichen Werten in der anderen Quelle entsprechen, wählen Sie und , um Datensätze basierend auf mehreren zugeordneten Werten abzugleichen.
Wenn beispielsweise eine Faktentabelle "Bilanz" Spalten enthält, die der Kombination der Schlüsselspalten Kontonummer und Entität in einer Dimensionstabelle "Kontenzuordnung" entsprechen, klicken Sie auf und und verbinden Sie die entsprechenden Spalten der Tabellen.
Hinweis: Im SQL Editorerscheint die Beziehung als JOIN ON (TB.entity = AccountMap.entity) AND (TB.account = AccountMap.account)
Wenn die Werte einer Quelle je nach Daten mehreren Werten in der anderen Quelle entsprechen können, wählen Sie oder , um Datensätze auf der Grundlage der spezifischen zugeordneten Werte abzugleichen.
Wenn beispielsweise die Schlüsselspalte Konto in einer Dimensionstabelle Kontenzuordnung entweder der Spalte Konto oder Unterkonto in der Faktentabelle Summen- und Saldenliste entspricht, klicken Sie auf oder und verbinden Sie die Schlüsselspalte mit den beiden Spalten der Faktentabelle.
Hinweis: Im SQL Editorerscheint die Beziehung als JOIN ON (AccountMap.account = TB.account) OR (AccountMap.account = TB.subaccount)
Hinweis: Wenn Ihre Verknüpfung die beiden Operatoren und sowie oder enthält, werden Datensätze gefunden, die alle durch undgetrennten Kriterien erfüllen, sowie alle, die durch odergetrennte Kriterien erfüllen.
Schritt 4. Wählen Sie, wie die Datensätze der Quellen verbunden werden sollen
Wählen Sie in der Verknüpfung, wie die Datensätze der Quellen in den Abfrageergebnissen kombiniert werden sollen:
Nachdem Sie die Beziehung zwischen allen Quellen der Abfrage definiert haben, klicken Sie auf Speichern .
Hinweis: Beim Speichern entfernt die Abfrage automatisch alle Quellen, für die keine Beziehung definiert ist.
<!--Performing a UNION
When you add a relationship between two sources, you create a
JOIN
clause in the query's SQL, which combines the data
into new columns. To instead combine your data into new rows,
you can use a UNION
operator in the SQL Editor.
However, a union may create more records or rows
than Spreadsheets or another consumer of the results can support.
As an alternative,
create a table
and append the sources' data as datasets, which you can then slice-and-dice
and analyze in a query.