2013-07-26 5 views
1

내 문제는 MDX 쿼리와 관련이 있습니다. 아주 간단한 예를 들어 설명하겠습니다. 고객 수가 3 인 & 4 인 도시 "City-A"와 "City-B"가 각각 2, 700 및 900 인 상태가 있다고 가정합니다.MDX 쿼리 수준 현명한 합계

이제 비즈니스 고객은 도시에 고객 수가 3을 초과하고 표시 금액이있는 경우입니다. 4, 양 - - 그래서 대답은 도시-B, 고객 수 900

하지만 난 주 수준에서 동일한 공식을하려고 할 때 내가 주-1, 고객 수를 얻을 - (7), 양 - 1600

가 어떤인가 먼저 비즈니스 로직을 도시 수준에서 적용한 다음 MDX 쿼리에서 지정할 수있는 방법은 무엇입니까?

답변

3

예, 동적 집계 (예 : 하위 레벨에 적용된 필터를 반영하는 상위 합계)를 원할 경우 하위 선택을 사용할 수 있습니다. 우리가 재 응집을 유발, 고객의 필터링 설정을 하위 선택한 다음 새를 선택한 경우

SELECT 
    {[Measures].[Internet Order Quantity], [Measures].[Internet Sales Amount]} ON 0, 
    Union(
     [Customer].[Customer Geography].[All Customers], 
     Filter([Customer].[Customer Geography].[Country], 
       [Measures].[Internet Order Quantity] > 6000) 
    ) ON 1 
FROM [Adventure Works] 

// Results 
       Internet Order Quantity Internet Sales Amount 
All Customers     60,398   $29,358,677.22 
Australia      13,345   $9,061,000.58 
Canada       7,620   $1,977,844.86 
United Kingdom     6,906   $3,391,712.21 
United States     21,344   $9,389,789.51 

를 쿼리로 :

는 우리가 선택에 고객의 세트를 필터링하는 쿼리를 비교 총계 :

SELECT 
    {[Measures].[Internet Order Quantity], [Measures].[Internet Sales Amount]} ON 0, 
    Union(
     [Customer].[Customer Geography].[All Customers], 
     [Customer].[Customer Geography].[Country] 
    ) ON 1 
FROM (
    SELECT Filter([Customer].[Customer Geography].[Country], 
        [Measures].[Internet Order Quantity] > 6000) ON 0 
    FROM [Adventure Works] 
) 

// Results 
       Internet Order Quantity Internet Sales Amount 
All Customers     49,215   $23,820,347.17 
Australia      13,345   $9,061,000.58 
Canada       7,620   $1,977,844.86 
United Kingdom     6,906   $3,391,712.21 
United States     21,344   $9,389,789.51