CROSSJOIN 函數 (DAX)
傳回一份資料表,其中包含引數中所有資料表之資料列的笛卡兒乘積。 新資料表中的資料行就是所有引數資料表中的所有資料行。
語法
CROSSJOIN(<table>, <table>[, <table>]…)
參數
- table
傳回資料表的任何 DAX 運算式。
傳回值
一份資料表,其中包含引數中所有資料表之資料列的笛卡兒乘積。
備註
table 引數中所有資料表的所有資料行名稱都必須不同,否則系統會傳回錯誤。
CROSSJOIN() 所傳回的資料列總數會等於引數中所有資料表之資料列數目的乘積。此外,結果資料表中的資料行總數就是所有資料表中資料行數目的總和。 例如,如果 TableA 具有 rA 個資料列和 cA 個資料行、TableB 具有 rB 個資料列和 cB 個資料行,而且 TableC 具有 rC 個資料列和 cC 個資料行,則產生的資料表就會具有 rA × rb × rC 個資料列和 cA + cB + cC 個資料行。
範例
下列範例會顯示將 CROSSJOIN() 套用至 Colors 和 Stationery 這兩個資料表的結果。
Colors 資料表包含色彩和模式:
色彩 |
模式 |
---|---|
Red |
Horizontal Stripe |
Green |
Vertical Stripe |
Blue |
Crosshatch |
Stationery 資料表包含字型和呈現方式:
字型 |
呈現方式 |
---|---|
serif |
embossed |
sans-serif |
engraved |
要產生交叉聯結的運算式如下:
CROSSJOIN( Colors, Stationery)
在應該使用資料表運算式的位置使用上述運算式時,運算式的結果便如下所示:
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 |