Udostępnij za pośrednictwem


Połączenia krzyżowego (MDX)

Zwraca iloczyn krzyżowy jeden lub więcej zestawów.

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óra zwraca zestaw.

  • Set_Expression2
    Prawidłowe wyrażenie Multidimensional Expressions (MDX), która zwraca zestaw.

Remarks

The Crossjoin funkcja returns the cross product of two or more specified sets. Kolejność krotek w wynikowym zestawie zależy od kolejności zestawy, które mają zostać połączone i kolejność ich członków.Na przykład, gdy pierwszy zestaw składa się {x 1, x 2,..., xn}, i drugi zestaw składa się z {y1, y2,..., yn}, jest iloczyn krzyżowy z tych zestawów:

{(X1, y1) (x 1, y2),...,(x1, yn), (x2, y1), (x2, y2),...,

(x 2, yn),..., (xn, y1), (xn, y2),..., (xn, yn)}

Important noteImportant Note:

Jeśli zestawów w łączyć krzyżowego składają się z krotek z hierarchii innych atrybut w tym samym wymiarze, funkcja ta będzie zwracać tylko te krotek, które rzeczywiście istnieją.Aby uzyskać więcej informacji zobacz Pojęcia związane z klucza w języku MDX (MDX).

Przykłady

Poniższa kwerenda przedstawia proste przykłady zastosowania funkcja połączenia krzyżowego na oś kolumn i wierszy 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 filtrowania automatycznego, ma miejsce, gdy różne hierarchie z tego samego wymiaru 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 zwraca te same wyniki - Internet Sales Amount przez stan dla stanów Stanów Zjednoczonych.Dwie pierwsze za pomocą dwóch składni łączyć krzyżowego, a 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])