Crossjoin (MDX)

Restituisce il prodotto incrociato di uno o più set.

Sintassi

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

Argomenti

Set_Expression1
Espressione MDX (Multidimensional Expression) valida che restituisce un set.

Set_Expression2
Espressione MDX (Multidimensional Expression) valida che restituisce un set.

Osservazioni:

La funzione Crossjoin restituisce il prodotto incrociato di due o più set specificati. L'ordine delle tuple nel set di risultati dipende dall'ordine dei set da unire e dall'ordine dei membri corrispondenti. Ad esempio, quando il primo set è costituito da {x1, x2,...,xn}e il secondo set è costituito da {y1, y2, ..., yn}, il prodotto incrociato di questi set è:

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

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

Importante

Se i set nel cross join sono costituiti da tuple di gerarchie dell'attributo diverse contenute nella stessa dimensione, questa funzione restituirà solo le tuple effettivamente esistenti. Per altre informazioni, vedere Concetti chiave in MDX (Analysis Services).

Esempi

Nella query seguente vengono illustrati esempi semplici dell'utilizzo della funzione Crossjoin sull'asse delle colonne e delle righe di una query:

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]

Nell'esempio seguente viene illustrata l'applicazione di filtri automatica che si verifica quando a gerarchie diverse dalla stessa dimensione viene applicato il crossjoin:

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]

Nei tre esempi seguenti vengono restituiti gli stessi risultati, ovvero il valore di Internet Sales Amount per i vari stati degli Stati Uniti. Nei primi casi due vengono utilizzate le due sintassi cross join e nel terzo viene dimostrato l'utilizzo della clausola WHERE per restituire le stesse informazioni.

Esempio 1

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

Esempio 2

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

Esempio 3

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

Vedi anche

Guida di riferimento alle funzioni MDX (MDX)