Compartilhar via


Crossjoin (MDX)

Retorna o produto cruzado de um ou mais conjuntos.

Sintaxe

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

Argumentos

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

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

Comentários

A função Crossjoin retorna o produto cruzado de dois ou mais conjuntos especificados. A ordem das tuplas no conjunto resultante depende da ordem dos conjuntos a serem unidos e da ordem de seus membros. Por exemplo, quando o primeiro conjunto consiste em {x1, x2,...,xn}, e o segundo conjunto consiste em {y1, y2, ..., yn}, o produto cruzado desses conjuntos é:

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

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

Importante

Se os conjuntos na junção cruzada forem compostos por tuplas de diferentes hierarquias de atributo na mesma dimensão, essa função retornará somente as tuplas que realmente existem. Para obter mais informações, consulte Principais conceitos no MDX (Analysis Services).

Exemplos

A consulta a seguir mostra exemplos simples de uso da função Crossjoin no eixo 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 a seguir mostra a filtragem automática que ocorre quando hierarquias diferentes da mesma dimensão são unidas:

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 a seguir retornam os mesmos resultados: o Valor de Vendas da Internet por estado para os estados dos Estados Unidos. Os dois primeiros usam as duas sintaxes de junção cruzada e o terceiro demonstra o uso da cláusula WHERE para retornar as mesmas informações.

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

Consulte Também

Referência de função MDX (MDX)