CROSSJOIN (DAX), функция
Возвращает таблицу, содержащую декартово произведение всех строк из всех таблиц, указанных в аргументах. Столбцы в новой таблице — это все столбцы во всех таблицах аргументов.
Синтаксис
CROSSJOIN(<table>, <table>[, <table>]…)
Параметры
- table
Любое выражение DAX, возвращающее таблицу данных.
Возвращаемое значение
Таблица, содержащая декартово произведение всех строк во всех таблицах, указанных в аргументах.
Замечания
Имена столбцов в таблицах, указанных в аргументах table, должны быть уникальными, иначе будет возвращена ошибка.
Общее число строк, возвращаемых функцией CROSSJOIN(), равно произведению числа строк во всех таблицах, указанных в аргументах. Общее количество столбцов в результирующей таблице представляет собой сумму числа столбцов во всех таблицах. Например, если в ТаблицеA имеется rA строк и cA столбцов, в ТаблицеB — rB строк и cB столбцов и в ТаблицеC — rC строк и 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 |
утопленный |