Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Returnerar korsprodukten av en eller flera mängder.
Syntax
Standard syntax
Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] )
Alternate syntax
Set_Expression1 * Set_Expression2 [* ...n]
Arguments
Set_Expression1
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.
Set_Expression2
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.
Remarks
Crossjoin-funktionen returnerar korsprodukten av två eller flera specificerade mängder. Ordningen på tuplerna i den resulterande mängden beror på ordningen på mängderna som ska förena och ordningen på deras medlemmar. Till exempel, när den första mängden består av {x1, x2,...,xn}, och den andra mängden består av {y1, y2, ..., yn}, är korsprodukten av dessa mängder:
{(x1, y1), (x1, y2),...,(x1, yn), (x2, y1), (x2, y2),...,
(x2, yn),..., (xn, y1), (xn, y2),..., (xn, yn)}
Important
Om mängderna i korssammanfogningen består av tupler från olika attributhierarkier i samma dimension, kommer denna funktion endast att returnera de tupler som faktiskt existerar. För mer information, se Nyckelbegrepp i MDX (Analystjänster).
Examples
Följande fråga visar enkla exempel på användningen av Crossjoin-funktionen på axeln Kolumner och rader i en fråga:
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]
Följande exempel visar den automatiska filtreringen som sker när olika hierarkier från samma dimension korsförbinds:
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]
Följande tre exempel ger samma resultat – Internet Sales Amount per delstat för delstater inom United States. De två första använder de två korssammanfogade syntaxerna och den tredje demonstrerar användningen av WHERE-klausulen för att returnera samma information.
Exempel 1
SELECT CROSSJOIN
(
{[Customer].[Country].[United States]},
[Customer].[State-Province].Members
) ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Exempel 2
SELECT
[Customer].[Country].[United States] *
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]
Exempel 3
SELECT
[Customer].[State-Province].Members
ON 0
FROM [Adventure Works]
WHERE (Measures.[Internet Sales Amount],
[Customer].[Country].[United States])