Korsanslutning (MDX)

Returnerar korsprodukten av en eller flera mängder.

Syntax

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

Arguments

Set_Expression1
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.

Set_Expression2
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.

Remarks

Crossjoin-funktionen returnerar korsprodukten av två eller flera specificerade mängder. Ordningen på tuplerna i den resulterande mängden beror på ordningen på mängderna som ska förena och ordningen på deras medlemmar. Till exempel, när den första mängden består av {x1, x2,...,xn}, och den andra mängden består av {y1, y2, ..., yn}, är korsprodukten av dessa mängder:

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

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

Important

Om mängderna i korssammanfogningen består av tupler från olika attributhierarkier i samma dimension, kommer denna funktion endast att returnera de tupler som faktiskt existerar. För mer information, se Nyckelbegrepp i MDX (Analystjänster).

Examples

Följande fråga visar enkla exempel på användningen av Crossjoin-funktionen på axeln Kolumner och rader i en fråga:

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]  

Följande exempel visar den automatiska filtreringen som sker när olika hierarkier från samma dimension korsförbinds:

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]  

Följande tre exempel ger samma resultat – Internet Sales Amount per delstat för delstater inom United States. De två första använder de två korssammanfogade syntaxerna och den tredje demonstrerar användningen av WHERE-klausulen för att returnera samma information.

Exempel 1

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

Exempel 2

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

Exempel 3

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