크로스조인(MDX)
하나 이상의 집합의 교차 곱을 반환합니다.
구문
Standard syntax
Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] )
Alternate syntax
Set_Expression1 * Set_Expression2 [* ...n]
인수
Set_Expression1
집합을 반환하는 유효한 MDX(다차원 식) 식입니다.
Set_Expression2
집합을 반환하는 유효한 MDX(다차원 식) 식입니다.
설명
Crossjoin 함수는 두 개 이상의 지정된 집합의 교차 곱을 반환합니다. 결과 집합의 튜플 순서는 조인할 집합의 순서와 해당 멤버의 순서에 따라 달라집니다. 예를 들어 첫 번째 집합이 {x1, x2,...,xn}으로 구성되고 두 번째 집합이 {y1, y2, ..., yn}으로 구성된 경우 이러한 집합의 교차곱은 다음과 같습니다.
{(x1, y1), (x1, y2),...,(x1, yn), (x2, y1), (x2, y2),...,
(x2, yn),...,(xn, y1), (xn, y2),...,(xn, yn)}
Important
크로스 조인의 집합이 동일한 차원에 있는 다른 특성 계층의 튜플로 구성된 경우 이 함수는 실제로 존재하는 튜플만 반환합니다. 자세한 내용은 MDX(Analysis Services)의 주요 개념을 참조하세요.
예
다음 쿼리는 쿼리의 열 및 행 축에서 크로스조인 함수를 사용하는 간단한 예제를 보여 줍니다.
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])