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 となります。
使用例
次の例に、Colors と Stationery の 2 つのテーブルに CROSSJOIN() を適用した結果を示します。
テーブル Colors には、色とパターンが含まれています。
色 |
パターン |
---|---|
赤 |
横ストライプ |
緑 |
縦ストライプ |
青 |
クロスハッチ |
テーブル Stationery には、フォントと効果が含まれています。
フォント |
効果 |
---|---|
セリフ |
エンボス |
サンセリフ |
浮き彫り |
クロス結合を生成する式は次のとおりです。
CROSSJOIN( Colors, Stationery)
テーブル式が必要とされる場所で上記の式を使用した場合、次の結果が生成されます。
赤 |
横ストライプ |
セリフ |
エンボス |
緑 |
縦ストライプ |
セリフ |
エンボス |
青 |
クロスハッチ |
セリフ |
エンボス |
赤 |
横ストライプ |
サンセリフ |
浮き彫り |
緑 |
縦ストライプ |
サンセリフ |
浮き彫り |
青 |
クロスハッチ |
サンセリフ |
浮き彫り |