Połączenia krzyżowego (MDX)
Zwraca iloczyn krzyżowy jeden lub więcej zestawów.
Standard syntax
Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] )
Alternate syntax
Set_Expression1 * Set_Expression2 [* ...n]
Argumenty
Set_Expression1
Prawidłowe wyrażenie Multidimensional Expressions (MDX), która zwraca zestaw.Set_Expression2
Prawidłowe wyrażenie Multidimensional Expressions (MDX), która zwraca zestaw.
Remarks
The Crossjoin funkcja returns the cross product of two or more specified sets. Kolejność krotek w wynikowym zestawie zależy od kolejności zestawy, które mają zostać połączone i kolejność ich członków.Na przykład, gdy pierwszy zestaw składa się {x 1, x 2,..., xn}, i drugi zestaw składa się z {y1, y2,..., yn}, jest iloczyn krzyżowy z tych zestawów:
{(X1, y1) (x 1, y2),...,(x1, yn), (x2, y1), (x2, y2),...,
(x 2, yn),..., (xn, y1), (xn, y2),..., (xn, yn)}
Important Note: |
---|
Jeśli zestawów w łączyć krzyżowego składają się z krotek z hierarchii innych atrybut w tym samym wymiarze, funkcja ta będzie zwracać tylko te krotek, które rzeczywiście istnieją.Aby uzyskać więcej informacji zobacz Pojęcia związane z klucza w języku MDX (MDX). |
Przykłady
Poniższa kwerenda przedstawia proste przykłady zastosowania funkcja połączenia krzyżowego na oś kolumn i wierszy w kwerendzie:
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]
W poniższym przykładzie pokazano filtrowania automatycznego, ma miejsce, gdy różne hierarchie z tego samego wymiaru są crossjoined:
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]
Następujące trzy przykłady zwraca te same wyniki - Internet Sales Amount przez stan dla stanów Stanów Zjednoczonych.Dwie pierwsze za pomocą dwóch składni łączyć krzyżowego, a trzeci zademonstrowano użycie klauzula WHERE do zwracania tych samych informacji.
Przykład 1
SELECT CROSSJOIN
(
{[Customer].[Country].[United States]},
[Customer].[State-Province].Members
) ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Przykład 2
SELECT
[Customer].[Country].[United States] *
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Przykład 3
SELECT
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE (Measures.[Internet Sales Amount],
[Customer].[Country].[United States])