Crossjoin (MDX)

Devuelve el producto cruzado de uno o más conjuntos.

Sintaxis

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

Alternate syntax
Set_Expression1 * Set_Expression2 [* ...n]

Argumentos

  • Set_Expression1
    Expresión MDX válida que devuelve un conjunto.

  • Set_Expression2
    Expresión MDX válida que devuelve un conjunto.

Comentarios

La función Crossjoin devuelve el producto cruzado de dos o más conjuntos especificados. El orden de las tuplas en el conjunto resultante depende del orden de los conjuntos que deben unirse y del orden de sus miembros. Por ejemplo, cuando el primer conjunto consta de {x1, x2,...,xn} y el segundo conjunto consta de {y1, y2, ..., yn}, el producto cruzado de estos conjuntos es:

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

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

Nota importanteImportante

Si los conjuntos de la combinación cruzada están compuestos por tuplas de diferentes jerarquías de atributo de la misma dimensión, esta función sólo devolverá aquellas tuplas que realmente existen. Para obtener más información, vea Conceptos clave de MDX (MDX).

Ejemplos

La consulta siguiente muestra ejemplos simples del uso de la función Crossjoin en los ejes de columnas y filas de una consulta:

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]

En el ejemplo siguiente se muestra el filtrado automático que tiene lugar cuando las distintas jerarquías de una misma dimensión están unidas de forma cruzada:

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]

Los tres ejemplos siguientes devuelven los mismos resultados (cifra de ventas por Internet por estado para los estados de Estados Unidos). Los dos primeros utilizan las dos sintaxis de combinación cruzada y el tercero muestra el uso de la cláusula WHERE para devolver la misma información.

Ejemplo 1

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

Ejemplo 2

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

Ejemplo 3

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

Vea también

Referencia