Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Возвращает векторное произведение одного или нескольких множеств.
Syntax
Standard syntax
Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] )
Alternate syntax
Set_Expression1 * Set_Expression2 [* ...n]
Arguments
Set_Expression1
Допустимое выражение многомерных выражений (MDX), которое возвращает множество.
Set_Expression2
Допустимое выражение многомерных выражений (MDX), которое возвращает множество.
Remarks
Функция Crossjoin возвращает векторное произведение двух или более заданных множеств. Порядок кортежей в полученном множестве зависит от порядка объединяемых множеств и порядка их членов. Например, когда первое множество состоит из {x1, x2,...,xn}, а второе множество состоит из {y1, y2, ...,y n}, векторное произведение этих множеств равно:
{(x1, y1), (x1, y2),...,(x1, yn), (x2, y1), (x2, y2),...,
(x2,y n),..., (xn, y1), (xn, y2),..., (xn, yn)}
Important
Если множества в перекрёстном соединении состоят из кортежей из разных иерархий атрибутов в одном измерении, эта функция вернёт только те кортежи, которые действительно существуют. Для получения дополнительной информации см. раздел «Ключевые концепции в MDX (аналитические услуги)».
Примеры
Следующий запрос показывает простые примеры использования функции Crossjoin на оси Columns and Rows запроса:
SELECT
[Customer].[Country].Members *
[Customer].[State-Province].Members
ON 0,
Crossjoin(
[Date].[Calendar Year].Members,
[Product].[Category].[Category].Members)
ON 1
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Следующий пример показывает автоматическую фильтрацию, которая происходит, когда разные иерархии одного измерения пересекаются:
SELECT
Measures.[Internet Sales Amount]
ON 0,
//Only the dates in Calendar Years 2003 and 2004 will be returned here
Crossjoin(
{[Date].[Calendar Year].&[2003], [Date].[Calendar Year].&[2004]},
[Date].[Date].[Date].Members)
ON 1
FROM [Adventure Works]
Следующие три примера дают те же результаты — Internet Sales Amount по штатам для штатов США. Первые два используют синтаксис перекрёстного соединения, а третий демонстрирует использование клаузы WHERE для возврата той же информации.
Пример 1
SELECT CROSSJOIN
(
{[Customer].[Country].[United States]},
[Customer].[State-Province].Members
) ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Пример 2
SELECT
[Customer].[Country].[United States] *
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Пример 3
SELECT
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE (Measures.[Internet Sales Amount],
[Customer].[Country].[United States])