Junção Cruzada (MDX)

Devolve o produto vetorial de um ou mais conjuntos.

Syntax

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

Arguments

Set_Expression1
Uma expressão válida de Expressões Multidimensionais (MDX) que devolve um conjunto.

Set_Expression2
Uma expressão válida de Expressões Multidimensionais (MDX) que devolve um conjunto.

Observações

A função Crossjoin devolve o produto vetorial de dois ou mais conjuntos especificados. A ordem das tuplas no conjunto resultante depende da ordem dos conjuntos a unir e da ordem dos seus elementos. Por exemplo, quando o primeiro conjunto consiste em {x1, x2,...,xn}, e o segundo conjunto consiste em {y1, y2, ...,y n}, o produto vetorial destes conjuntos é:

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

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

Importante

Se os conjuntos na junção cruzada forem compostos por tuplas de diferentes hierarquias de atributos na mesma dimensão, esta função devolverá apenas as tuplas que realmente existem. Para mais informações, consulte Conceitos-Chave em MDX (Serviços de Análise).

Examples

A consulta seguinte mostra exemplos simples da utilização da função Crossjoin nos eixos Colunas e Linhas de uma 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]  

O exemplo seguinte mostra a filtragem automática que ocorre quando diferentes hierarquias da mesma dimensão são entrelaçadas:

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]  

Os três exemplos seguintes apresentam os mesmos resultados - o Valor das Vendas na Internet por estado para estados dentro dos Estados Unidos. As duas primeiras usam as duas sintaxes de cross join e a terceira demonstra o uso da cláusula WHERE para devolver a mesma informação.

Exemplo 1

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

Exemplo 2

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

Exemplo 3

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