Enlace cruzado (MDX)

Devuelve el producto vectorial 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
Una expresión válida de Expresiones Multidimensionales (MDX) que devuelve un conjunto.

Set_Expression2
Una expresión válida de Expresiones Multidimensionales (MDX) que devuelve un conjunto.

Remarks

La función de unión cruzada devuelve el producto vectorial de dos o más conjuntos especificados. El orden de las tuplas en el conjunto resultante depende del orden de los conjuntos a unir y del orden de sus miembros. Por ejemplo, cuando el primer conjunto consiste en {x1, x2,...,xn}, y el segundo conjunto consiste en {y1, y2, ...,y n}, el producto vectorial de estos conjuntos es:

{(x1, y1), (x1, y2),...,(x1,y n), (x2, y1), (x2, y2),...,

(x2,y n),..., (xn, y1), (xn, y2),..., (xn,y n)}

Importante

Si los conjuntos en la unión cruzada están compuestos por tuplas de diferentes jerarquías de atributos en la misma dimensión, esta función solo devolverá aquellas tuplas que realmente existan. Para más información, consulte Conceptos clave en MDX (Servicios de Análisis).

Examples

La siguiente consulta muestra ejemplos sencillos del uso de la función de Crossjoin en el eje 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]  

El siguiente ejemplo muestra el filtrado automático que se produce cuando diferentes jerarquías de la misma dimensión se entrelazan:

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 siguientes tres ejemplos demuestran los mismos resultados: el importe de ventas por Internet por estado para estados dentro de Estados Unidos. Los dos primeros utilizan las dos sintaxis de unión cruzada y el tercero demuestra 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])