交叉連接(MDX)

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

Syntax

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

論點

Set_Expression1
一個有效的多維表達式(MDX)表達式,能回傳一個集合。

Set_Expression2
一個有效的多維表達式(MDX)表達式,能回傳一個集合。

備註

交叉連接函數回傳兩個或以上指定集合的叉積。 結果集合中元組的順序取決於要連接的集合順序及其成員的順序。 例如,當第一個集合由 {x1, x2,...,xn} 組成,第二個集合由 {y1, y2, ..., yn} 組成時,這兩個集合的叉積為:

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

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

Important

如果交叉連接中的集合是由同一維度中不同屬性階層的元組組成,這個函數只會回傳實際存在的元組。 欲了解更多資訊,請參閱 MDX(分析服務)的關鍵概念

Examples

以下查詢展示了在查詢欄位與列軸上使用交叉連接函數的簡單範例:

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])