Crossjoin (MDX)

Retourne le produit croisé d'un ou plusieurs jeux.

Syntaxe

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

Arguments

Set_Expression1
Expression MDX (Multidimensional Expressions) valide qui retourne un jeu.

Set_Expression2
Expression MDX (Multidimensional Expressions) valide qui retourne un jeu.

Remarques

La fonction Crossjoin retourne le produit croisé de deux ou plusieurs jeux spécifiés. L'ordre des tuples dans le jeu résultant dépend de l'ordre des jeux à joindre et de l'ordre de leurs membres. Par exemple, lorsque le premier jeu se compose de {x1, x2,...,xn}, et que le deuxième ensemble est composé de {y1, y2, ..., yn}, le produit croisé de ces jeux est :

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

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

Important

Si les jeux dans la jointure croisée se composent de tuples issus de différentes hiérarchies d'attribut au sein de la même dimension, cette fonction retourne uniquement les tuples réellement existants. Pour plus d’informations, consultez Concepts clés dans MDX (Analysis Services).

Exemples

La requête suivante affiche des exemples simples de l'utilisation de la fonction Crossjoin sur les axes de colonnes et de lignes d'une requête :

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]

L'exemple suivant affiche le filtrage automatique qui a lieu lorsque les hiérarchies différentes de la même dimension sont des jointures croisées :

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]

Les trois exemples ci-après retournent les mêmes résultats, soit la mesure Internet Sales Amount (volume de vente Internet) par état pour les états des États-Unis. Les deux premiers utilisent les deux syntaxes de jointure croisée ; le troisième démontre l'utilisation de la clause WHERE pour le retour des mêmes informations.

Exemple 1

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

Exemple 2

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

Exemple 3

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

Voir aussi

Guide de référence des fonctions MDX (MDX)