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 (Expresiones multidimensionales) válida que devuelve un conjunto.
Set_Expression2
Expresión MDX (Expresiones multidimensionales) 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)}
Importante
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 solo devolverá aquellas tuplas que realmente existen. Para obtener más información, vea Conceptos clave en MDX (Analysis Services).
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])