2012-08-17 5 views
3

MDX를 처음 사용했습니다. 이제 2 가지 다른 차원의 결과 두 개를 결합하고 싶습니다.MDX : 두 차원의 결과를 결합하는 방법은 무엇입니까?

With 
MEMBER [Measures].[Student Head Count].[Program1] AS 
([Program1].[Program1].&[1]) 
MEMBER [Measures].[Student Head Count].[Program2] AS 
([Program2].[Program2].&[1]) 

SELECT 
NON EMPTY 
{ 
[Measures].[Student Head Count].[Program1] , 
[Measures].[Student Head Count].[Program2] 
} 
ON COLUMNS 

FROM [Current Student Overview] 

오류가 보여줍니다 : 나는 다음과 같은 코드를 사용하고

The Program1 calculated member cannot be created because its parent is at the lowest level in the Measures hierarchy. 

내가 "학생 인원수는"가장 낮은 수준에 있음을 알고,하지만 난을 수정하는 방법을 모른다 문법. "Student Head Count"를 "Test"로 바꾸면 작동하지 않습니다. 또한 "유니언"은 내가 시도한 것처럼 작동하지 않습니다. 누구든지 수정되거나 새로운 MDX로 ​​나를 도울 수 있습니까?

SELECT 
NON EMPTY 
{ 

[Measures].[Student Head Count] 
} 
ON COLUMNS, 
NON EMPTY 
{ 
NONEMPTYCROSSJOIN({[Program1].[Program1].&[1]},{[Program2].[Program2] }), 
NONEMPTYCROSSJOIN({[Program1].[Program1] },{[Program2].[Program2].&[1]}) 
} 
on 1 


FROM [Current Student Overview] 

결과는 다음과 같습니다 :

나는 다음과 같은 스크립트를 Crossjoin과 노력

enter image description here

어떻게 제거 할 수 또는 다음의 PerformancePoint에서 "모든"열을 숨기?

답변

2

측정 값 차원에는 단 하나의 수준 만 있습니다. 측정 이름은 [Measures].[Program21][Measures].[Program2]이어야합니다.

당신은이 같은 쿼리를 다시 작성할 수 있습니다 : MDX에서

SELECT 
NON EMPTY 
{ 
    ([Program1].[Program1].&[1], [Program2].[Program2].&[1]) 
} 
ON COLUMNS 
FROM [Current Student Overview] 
WHERE ([Measures].[Student Head Count]) 

을 수행 할 수 없습니다 노조 다른 차원의 결과 있지만 CrossJoin 기능 외적을 할 수 있습니다.

편집 : 집합에 구성원이 하나만있을 때 CrossJoin을 사용할 필요가 없습니다. (member1, member2)을 할 수 있습니다.

당신이 All을보고 싶지 않으면이 같은 쿼리를 사용할 수 있습니다

WITH 
MEMBER [Measures].[Student Head Count Program1] AS 
    ([Measures].[Student Head Count], [Program1].[Program1].&[1], [Program2].[Program2].[All]) 
MEMBER [Measures].[Student Head Count Program2] AS 
    ([Measures].[Student Head Count], [Program1].[Program1].[All], [Program2].[Program2].&[1]) 
SELECT 
NON EMPTY 
{ 
    [Measures].[Student Head Count Program1] , 
    [Measures].[Student Head Count Program2] 
} 
ON COLUMNS 
FROM [Current Student Overview] 
+0

이 솔루션에 대한 감사를! 그러나이 둘은 서로 다른 차원이므로 오류가 발생합니다. 지금 crossjoin을 시도하고 있지만 결과는 편집 된 질문의 스냅 샷으로 표시됩니다. 어떻게 발표 할 때 "전체"열을 숨길 수 있습니까? – Echo

+0

@kuangjizi 답변을 업데이트했습니다. – Benoit

+0

정말 고마워요! 지금 작동 중입니다. :-) – Echo

관련 문제