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.

Hinweise

Die Crossjoin-Funktion gibt das Kreuzprodukt von zwei oder mehr angegebenen Mengen 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. Angenommen, die erste Menge besteht aus {x1, x2,...,xn} und die zweite Menge aus {y1, y2, ..., yn}. Dann ist das Kreuzprodukt dieser Mengen:

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

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

Wichtiger HinweisWichtig

Wenn die Mengen im Kreuzprodukt 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 Schlüsselkonzepte in MDX (MDX).

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 Crossjoin-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])

Siehe auch

Verweis