2013-10-23 4 views
0
위한 차원 수를 얻는 방법
WITH MEMBER [Measures].[Country Count] 
AS 
Count(existing [Customer].[Customer Geography].[Country]) 

MEMBER [Customer].[Customer Geography].ClassA AS 
SUM(filter([Customer].[Customer Geography].[Country],[Measures].[Internet Order Count] > 3000)) 

MEMBER [Customer].[Customer Geography].ClassB AS 
SUM(filter([Customer].[Customer Geography].[Country],[Measures].[Internet Order Count] > 1500)) 


MEMBER [Customer].[Customer Geography].ClassC AS 
SUM(filter([Customer].[Customer Geography].[Country],[Measures].[Internet Order Count] > 0)) 

SET My_Custom_Set AS 
{[Customer].[Customer Geography].ClassA, [Customer].[Customer Geography].ClassB,[Customer].[Customer Geography].ClassC} 

SELECT {[Measures].[Internet Order Count], [Measures].[Internet Sales Amount], [Measures].[Country Count]} ON COLUMNS, 
My_Custom_Set ON ROWS 
FROM 
[Adventure Works] 

결과 : 위의 쿼리에서MDX : 필터링 회원

Result

, 클래스 A, 클래스 B, 클래스 C에 기여 얼마나 많은 국가 얻는 방법 모든 클래스에 대해 최대 국가 수 6이 측정 '국가 수'에 표시됩니까?

왜 여기 현재의 클래스에 대한 국가의 수를 제공하지 않습니다 기존의?

+0

감사 @Justin를 텍스트를 포맷합니다. –

답변

1

같은 계층 구조 내에서 작업하는 것처럼이 작동하지 않습니다 [Customer].[Customer Geography].ClassA이 계층 구조의 새로운 멤버, 그리고 FIlter 결과가 그 안에 포함되지 않으며, 따라서 EXISTING이 작동하지 않습니다.

다음 질의합니다 (count s는 기본 설정에 참고) 작동 :

WITH 
SET ClassA AS 
filter([Customer].[Customer Geography].[Country],[Measures].[Internet Order Count] > 3000) 

SET ClassB AS 
filter([Customer].[Customer Geography].[Country],[Measures].[Internet Order Count] > 1500) 

SET ClassC AS 
filter([Customer].[Customer Geography].[Country],[Measures].[Internet Order Count] > 0) 

MEMBER [Customer].[Customer Geography].ClassA AS 
SUM(ClassA) 

MEMBER [Customer].[Customer Geography].ClassB AS 
SUM(ClassB) 

MEMBER [Customer].[Customer Geography].ClassC AS 
SUM(ClassC) 

MEMBER [Measures].[Country Count] 
AS 
CASE 
    WHEN [Customer].[Customer Geography].CurrentMember IS [Customer].[Customer Geography].ClassA THEN 
     ClassA.Count 
    WHEN [Customer].[Customer Geography].CurrentMember IS [Customer].[Customer Geography].ClassB THEN 
     ClassB.Count 
    WHEN [Customer].[Customer Geography].CurrentMember IS [Customer].[Customer Geography].ClassC THEN 
     ClassC.Count 
    WHEN [Customer].[Customer Geography].CurrentMember IS [Customer].[Customer Geography].[All Customers] THEN 
     [Customer].[Customer Geography].[Country].Count 
    ELSE 
     1 
END 


SET My_Custom_Set AS 
{[Customer].[Customer Geography].ClassA, [Customer].[Customer Geography].ClassB,[Customer].[Customer Geography].ClassC} 

SELECT {[Measures].[Internet Order Count], [Measures].[Internet Sales Amount], [Measures].[Country Count]} ON COLUMNS, 
My_Custom_Set ON ROWS 
FROM 
[Adventure Works]