Crossjoin (MDX)Crossjoin (MDX)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Restituisce il prodotto incrociato di uno o più set.Returns the cross product of one or more sets.

SintassiSyntax


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

Alternate syntax  
Set_Expression1 * Set_Expression2 [* ...n]  

ArgomentiArguments

Set_Expression1Set_Expression1
Espressione MDX (Multidimensional Expression) valida che restituisce un set.A valid Multidimensional Expressions (MDX) expression that returns a set.

Set_Expression2Set_Expression2
Espressione MDX (Multidimensional Expression) valida che restituisce un set.A valid Multidimensional Expressions (MDX) expression that returns a set.

OsservazioniRemarks

Il Crossjoin funzione restituisce il prodotto incrociato di due o più set specificati.The Crossjoin function returns the cross product of two or more specified sets. L'ordine delle tuple nel set di risultati dipende dall'ordine dei set da unire e dall'ordine dei membri corrispondenti.The order of tuples in the resulting set depends on the order of the sets to be joined and the order of their members. Ad esempio, quando il primo set costituito da {x1, x2,..., xn}, e il secondo set costituito da {y1, y2,..., yn}, il prodotto incrociato di tali set è:For example, when the first set consists of {x1, x2,...,xn}, and the second set consists of {y1, y2, ..., yn}, the cross product of these sets is:

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

(x2, yn),..., (xn, y1), (xn, y2),..., (xn, yn)}(x2, yn),..., (xn, 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.If the sets in the cross join are composed of tuples from different attribute hierarchies in the same dimension, this function will return only those tuples that actually exist. Per ulteriori informazioni, vedere concetti chiave di MDX ( Analysis Services ) .For more information, see Key Concepts in MDX (Analysis Services).

EsempiExamples

Nella query seguente vengono illustrati esempi semplici dell'utilizzo della funzione Crossjoin sull'asse delle colonne e delle righe di una query:The following query shows simple examples of the use of the Crossjoin function on the Columns and Rows axis of a 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:The following example shows the automatic filtering that takes place when different hierarchies from the same dimension are crossjoined:

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.The following three examples return the same results - the Internet Sales Amount by state for states within the United States. 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.The first two use the two cross join syntaxes and the third demonstrates the use of the WHERE clause to return the same information.

Esempio 1Example 1

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

Esempio 2Example 2

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

Esempio 3Example 3

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

Vedere ancheSee Also

Riferimento alla funzione MDX ( MDX )MDX Function Reference (MDX)