CROSSJOIN (DAX), функция

Возвращает таблицу, содержащую декартово произведение всех строк из всех таблиц, указанных в аргументах. Столбцы в новой таблице — это все столбцы во всех таблицах аргументов.

CROSSJOIN(<table>, <table>[, <table>]…)
table

Любое выражение DAX, возвращающее таблицу данных.

Таблица, содержащая декартово произведение всех строк во всех таблицах, указанных в аргументах.

  • Имена столбцов в таблицах, указанных в аргументах table, должны быть уникальными, иначе будет возвращена ошибка.

  • Общее число строк, возвращаемых функцией CROSSJOIN(), равно произведению числа строк во всех таблицах, указанных в аргументах. Общее количество столбцов в результирующей таблице представляет собой сумму числа столбцов во всех таблицах. Например, если в ТаблицеA имеется rA строк и cA столбцов, в ТаблицеBrB строк и cB столбцов и в ТаблицеCrC строк и cC столбцов, результирующая таблица будет содержать rA × rb × rC строк и cA + cB + cC столбцов.

В следующем примере показаны результаты применения функции CROSSJOIN() к двум таблицам: Colors и Stationery.

В таблице Colors содержатся цвета и шаблоны.

Цвет

Шаблон

Красный

Горизонтальная полоса

Зеленый

Вертикальная полоса

Синий

Перекрестная штриховка

Таблица Stationery содержит шрифты и оформление.

Шрифт

Оформление

serif

выпуклый

sans-serif

утопленный

Выражение для создания перекрестного соединения приведено ниже:

CROSSJOIN( Colors, Stationery)

Если приведенное выше выражение используется в ситуациях, когда ожидается табличное выражение, результаты этого выражения будут следующими.

Красный

Горизонтальная полоса

serif

выпуклый

Зеленый

Вертикальная полоса

serif

выпуклый

Синий

Перекрестная штриховка

serif

выпуклый

Красный

Горизонтальная полоса

sans-serif

утопленный

Зеленый

Вертикальная полоса

sans-serif

утопленный

Синий

Перекрестная штриховка

sans-serif

утопленный