Crossjoin (MDX)

Geeft het kruisproduct van één of meer verzamelingen terug.

Syntax

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

Arguments

Set_Expression1
Een geldige Multidimensionale Expressies (MDX) expressie die een verzameling teruggeeft.

Set_Expression2
Een geldige Multidimensionale Expressies (MDX) expressie die een verzameling teruggeeft.

Remarks

De Crossjoin-functie geeft het kruisproduct terug van twee of meer gespecificeerde verzamelingen. De volgorde van de tupels in de resulterende verzameling hangt af van de volgorde van de te verbinden verzamelingen en de volgorde van hun leden. Bijvoorbeeld, wanneer de eerste verzameling bestaat uit {x1, x2,...,xn}, en de tweede verzameling uit {y1, y2, ..., yn}, is het kruisproduct van deze verzamelingen:

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

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

Important

Als de verzamelingen in de kruisverbinding bestaan uit tuples uit verschillende attribuuthiërarchieën in dezelfde dimensie, geeft deze functie alleen die tuples terug die daadwerkelijk bestaan. Voor meer informatie, zie Sleutelconcepten in MDX (Analysediensten).

Examples

De volgende query toont eenvoudige voorbeelden van het gebruik van de Crossjoin-functie op de as Columns and Rows van een 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]  

Het volgende voorbeeld toont de automatische filtering die plaatsvindt wanneer verschillende hiërarchieën uit dezelfde dimensie worden kruisverbonden:

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]  

De volgende drie voorbeelden geven dezelfde resultaten - het Internet Sales Amount per staat voor staten binnen de Verenigde Staten. De eerste twee gebruiken de twee cross-join-syntaxis en de derde demonstreert het gebruik van de WHERE-clausule om dezelfde informatie terug te geven.

Voorbeeld 1

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

Voorbeeld 2

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

Voorbeeld 3

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