Crossjoin (MDX)

Zwraca iloczyn wektóry jednego lub więcej zbiorów.

Syntax

  
Standard syntax  
Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] )  
  
Alternate syntax  
Set_Expression1 * Set_Expression2 [* ...n]  

Arguments

Set_Expression1
Poprawne wyrażenie z wyrażeń wielowymiarowych (MDX), które zwraca zbiór.

Set_Expression2
Poprawne wyrażenie z wyrażeń wielowymiarowych (MDX), które zwraca zbiór.

Remarks

Funkcja Crossjoin zwraca iloczyn krzyżowy dwóch lub więcej określonych zbiorów. Kolejność krotek w powstałym zbiorze zależy od kolejności zbiorów do łączenia oraz kolejności ich członków. Na przykład, gdy pierwszy zbiór składa się z {x1, x2,...,xn}, a drugi z {y1, y2, ..., yn}, iloczyn wewnętrzny tych zbiorów jest następujący:

{(x1, y1), (x1, y2),...,(x1, yn), (x2, y1), (x2, y2),...,

(x2,y n),..., (xn, y1), (xn, y2),..., (xn, yn)}

Important

Jeśli zbiory w krzyżowym połączeniu składają się z krotek z różnych hierarchii atrybutów w tym samym wymiarze, funkcja ta zwróci tylko te krotek, które faktycznie istnieją. Więcej informacji można znaleźć w artykule Kluczowe pojęcia w MDX (Usługi analityczne).

Examples

Poniższe zapytanie pokazuje proste przykłady użycia funkcji Crossjoin na osi Kolumny i Wiersze zapytania:

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]  

Poniższy przykład pokazuje automatyczne filtrowanie, które zachodzi, gdy różne hierarchie z tego samego wymiaru są przeciętne:

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]  

Poniższe trzy przykłady dają te same wyniki – kwotę sprzedaży internetowej według stanów dla stanów Stany Zjednoczone. Pierwsze dwie wykorzystują składnie dwóch krzyżowych łączy, a trzecia demonstruje użycie klauzuli 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])