閱讀英文

共用方式為


Crossjoin (MDX)

傳回一或多個集合的交叉乘積。

語法

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

引數

Set_Expression1
傳回集合的有效多維度運算式 (MDX) 運算式。

Set_Expression2
傳回集合的有效多維度運算式 (MDX) 運算式。

備註

Crossjoin 式會傳回兩個或多個指定集合的交叉乘積。 結果集中 Tuple 的順序取決於要聯結的集合順序及其成員的順序。 例如,當第一個集合包含 {x1、x2,...,x n },而第二個集合包含 {y1、y2、...、y n }時,這些集合的交叉乘積如下:

{(x1, y1), (x1, y2),...,(x1, y n ), (x2, y1), (x2, y2),...,

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

重要

如果交叉聯結中的集合是由相同維度中不同屬性階層的 Tuple 所組成,則此函式只會傳回實際存在的 Tuple。 如需詳細資訊,請參閱 MDX 中的重要概念(Analysis Services)。

範例

下列查詢顯示查詢之 Columns 和 Rows 軸上使用 Crossjoin 函式的簡單範例:

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]

下列範例顯示當相同維度的不同階層交叉聯結時,所發生的自動篩選:

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]

下列三個範例會傳回相同的結果 - 美國境內各州的網際網路銷售金額。 前兩個使用兩個交叉聯結語法,第三個會示範如何使用 WHERE 子句傳回相同的資訊。

範例 1

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

範例 2

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

範例 3

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

另請參閱

MDX 函數參考 (MDX)