CROSSJOIN-Funktion (DAX)
Gibt eine Tabelle zurück, die das kartesische Produkt aller Zeilen aus allen Tabellen in den Argumenten enthält. Die Spalten in der neuen Tabelle sind alle Spalten in allen Argumenttabellen.
Syntax
CROSSJOIN(<table>, <table>[, <table>]…)
Parameter
- table
Ein DAX-Ausdruck, der eine Tabelle mit Daten zurückgibt.
Rückgabewert
Eine Tabelle, die das kartesische Produkt aller Zeilen aus allen Tabellen in den Argumenten enthält.
Hinweise
Alle Spaltennamen aus table-Argumenten müssen in allen Tabellen unterschiedlich sein, oder es wird ein Fehler zurückgegeben.
Die Gesamtzahl der Zeilen, die von CROSSJOIN() zurückgegeben wurde, ist gleich dem Produkt der Anzahl von Zeilen aus allen Tabellen in den Argumenten; außerdem ist die Gesamtzahl von Spalten in der Ergebnistabelle die Summe der Anzahl von Spalten in allen Tabellen. Wenn z .B TableA rA Zeilen und cA Spalten, TableB rB Zeilen und cB Spalten und TableC rC Zeilen und cC Spalten enthält, dann enthält die resultierende Tabelle rA × rb × rC Zeilen und cA + cB + cC Spalten.
Beispiel
Das folgende Beispiel zeigt die Ergebnisse des Anwendens von CROSSJOIN() auf zwei Tabellen: Colors und Stationery.
Die Tabelle Colors enthält Farben und Muster:
Farbe |
Muster |
---|---|
Red |
Horizontal Stripe |
Green |
Vertical Stripe |
Blue |
Crosshatch |
Die Tabelle Stationery enthält Schriftarten und Präsentation:
Schriftart |
Präsentation |
---|---|
serif |
embossed |
sans-serif |
engraved |
Der Ausdruck zum Generieren des Cross Join wird nachfolgend dargestellt:
CROSSJOIN( Colors, Stationery)
Wenn der oben genannte Ausdruck dort verwendet wird, wo ein Tabellenausdruck erwartet wird, sind die Ergebnisse des Ausdrucks wie folgt:
Red |
Horizontal Stripe |
serif |
embossed |
Green |
Vertical Stripe |
serif |
embossed |
Blue |
Crosshatch |
serif |
embossed |
Red |
Horizontal Stripe |
sans-serif |
engraved |
Green |
Vertical Stripe |
sans-serif |
engraved |
Blue |
Crosshatch |
sans-serif |
engraved |