共用方式為


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,...,xn} 組成,而且第二個集合由 {y1, y2, ..., yn} 組成,這兩個集合的交叉乘積就是:

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

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

重要注意事項重要事項

如果交叉聯結中的集合是由相同維度之不同屬性階層的 Tuple 組成,這個函數只會傳回實際存在的 Tuple。如需詳細資訊,請參閱<MDX 的關鍵概念 (MDX)>。

範例

下列查詢會示範在查詢的資料行軸和資料列軸上使用 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]

下列三個範例都會傳回相同的結果 - 美國各州的 Internet Sales Amount。前兩個範例使用兩個交叉聯結語法,第三個示範 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])

請參閱

參考