Freigeben über


Crossjoin (MDX)

Gibt das Kreuzprodukt mindestens einer Menge zurück.

Syntax

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

Argumente

Set_Expression1
Ein gültiger MDX-Ausdruck (Multidimensional Expressions), der eine Menge zurückgibt.

Set_Expression2
Ein gültiger MDX-Ausdruck (Multidimensional Expressions), der eine Menge zurückgibt.

Bemerkungen

Die Crossjoin-Funktion gibt das Kreuzprodukt von zwei oder mehr angegebenen Sätzen zurück. Die Reihenfolge der Tupel in der sich ergebenden Menge hängt von der Reihenfolge der zu verknüpfenden Mengen und von der Reihenfolge ihrer Elemente ab. Wenn der erste Satz beispielsweise aus {x1, x2,...,xn} besteht und der zweite Satz aus {y1, y2, ..., yn} besteht, lautet das Kreuzprodukt dieser Sätze:

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

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

Wichtig

Wenn die Mengen im Cross Join aus Tupeln unterschiedlicher Attributhierarchien der gleichen Dimension bestehen, gibt die Funktion nur die Tupel zurück, die tatsächlich vorhanden sind. Weitere Informationen finden Sie unter Wichtige Konzepte in MDX (Analysis Services).

Beispiele

Die folgende Abfrage enthält einfache Beispiele für die Verwendung der Crossjoin-Funktion auf der COLUMNS- und der ROWS-Achse einer Abfrage:

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]

Das folgende Beispiel veranschaulicht das automatische Filtern, das erfolgt, wenn auf unterschiedliche Hierarchien derselben Dimension die Crossjoin-Funktion angewendet wird:

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]

In den folgenden drei Beispielen wird das gleiche Ergebnis – Internet Sales Amount nach Bundesstaaten für die Bundesstaaten der USA – zurückgegeben. In den ersten beiden Beispielen werden die beiden Cross Join-Syntaxvarianten verwendet, im dritten Beispiel wird zur Veranschaulichung die WHERE-Klausel verwendet, um die gleichen Informationen zurückzugeben.

Beispiel 1

SELECT CROSSJOIN  
   (  
      {[Customer].[Country].[United States]},  
       [Customer].[State-Province].Members  
   ) ON 0   
FROM [Adventure Works]  
WHERE Measures.[Internet Sales Amount]  

Beispiel 2

SELECT   
   [Customer].[Country].[United States] *   
      [Customer].[State-Province].Members  
ON 0   
FROM [Adventure Works]  
WHERE Measures.[Internet Sales Amount]  

Beispiel 3

SELECT   
   [Customer].[State-Province].Members  
ON 0   
FROM [Adventure Works]  
WHERE (Measures.[Internet Sales Amount],  
   [Customer].[Country].[United States])  

Weitere Informationen

MDX-Funktionsreferenz (MDX)