Połączenie krzyżowe (MDX)
Zwraca iloczyn krzyżowy jeden lub więcej zestawów.
Składnia
Standard syntax
Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] )
Alternate syntax
Set_Expression1 * Set_Expression2 [* ...n]
Argumenty
Set_Expression1
Prawidłowe wyrażenie Multidimensional Expressions (MDX), które zwraca zestaw.Set_Expression2
Prawidłowe wyrażenie Multidimensional Expressions (MDX), które zwraca zestaw.
Uwagi
Crossjoin Funkcja zwraca iloczyn krzyżowy dwóch lub więcej określonych zestawów.Zamówienia w Wynikowy zestaw krotek, zależy od kolejności zestawy, które mają zostać połączone oraz kolejność ich członków.Na przykład, gdy pierwszy zestaw składa {x 1, x 2,..., xn}, a drugi zestaw składa się z {y1 i y2..., yn}, jest iloczyn krzyżowy tych zestawów:
{(x 1, y1), (x 1, y2),..., (x 1, yn), (x 2, y1), (x 2, y2),...,
(x 2, yn),..., (xn, y1), (xn, y2),..., (xn, yn)}
Ważne: |
---|
Jeśli składają się zestawy w łączyć krzyżowego krotek, atrybut różne hierarchie, w tym samym wymiar, funkcja ta będzie zwracać tylko krotek, które rzeczywiście istnieją.Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia dotyczące MDX (MDX). |
Przykłady
Następująca kwerenda zawiera proste przykłady zastosowania funkcja Crossjoin na oś wierszy i kolumn w kwerendzie:
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]
W poniższym przykładzie pokazano automatyczne filtrowanie ma miejsce, gdy różne hierarchie z tego samego wymiar są crossjoined:
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]
Następujące trzy przykłady zwracają wyniki - Internet Sales Amount przez Państwo dla Państw w Stanach Zjednoczonych.Należy użyć dwóch pierwszych dwóch składni łączyć krzyżowego i trzeci zademonstrowano użycie klauzula WHERE do zwracania tych samych informacji.
Przykład 1
SELECT CROSSJOIN
(
{[Customer].[Country].[United States]},
[Customer].[State-Province].Members
) ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Przykład 2
SELECT
[Customer].[Country].[United States] *
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Przykład 3
SELECT
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE (Measures.[Internet Sales Amount],
[Customer].[Country].[United States])