2013-06-20 3 views
1

다중 차원 관리자 계층 구조와 시간 차원에서 완료된 작업 단위가 포함 된 큐브가 있습니다. 이것이 내가 함께 일하고 있어요 데이터라고 가정하자 :구성원 출퇴근 중 다중 계층 구조에 대한 값 집계

나는 MDX가 특정 레벨에 초점이를 통해 할 노력하고있어 무엇

http://i.stack.imgur.com/eNP4L.png

, (레벨 1, 존 스미스)와 (두 끝을 개인을 제거 사용자 및 관리자)를 선택하고 값을 올바르게 롤업합니다.

http://i.stack.imgur.com/xW5CF.png

위의 이미지에서 볼 수 있듯이

, 우리는 리사 라이스 모건 리처드슨의 팀 전체를 제거했습니다. 예상되는 결과는 전체 이름과 작업 단위의 두 열입니다.

내가 이런 식으로 지금까지 함께 넣어 보이는 한 쿼리 :

WITH SET [MyCustomSet] AS EXCEPT(
    DESCENDANTS([HR].[Mgr Hierarchy].&[JSMITH],, SELF_AND_AFTER), 
    {DESCENDANTS([HR].[Mgr Hierarchy].&[MRICHARDSON],,SELF_AND_AFTER), DESCENDANTS([HR].[Mgr Hierarchy].&[LRICE],,SELF_AND_AFTER)} 
) 
MEMBER [Measures].[MyMeasure] AS Aggregate([MyCustomSet], [Measures].[#Work Units]) 
SELECT { 
    [Measures].[MyMeasure] 
} ON COLUMNS, 
NON EMPTY { 
    [MyCustomSet] 
} ON ROWS 
FROM [MyCube] 

는하지만 내가 필요로하는 회원하지만 모든 단일 멤버의 집계 값의 목록을 반환은 모든 구성원의 총입니다. 계산 된 계수를 제거하고 [Measures].[#Work Units]을 사용하면 값은 구성원이 제거되지 않은 채로 전체 롤업 값을 나타내지 만 구성원은 열에 없습니다.

이 데이터에 대한 최종 홈은 재귀 상위 관계가있는 SSRS 테이블 설정에서 계층을 올바르게 표시합니다.

누구든지 손을 빌려 주거나 올바른 방향으로 나를 가리킬 수 있습니까? 감사!

+0

이 여전히 내가 제외 할 멤버를 포함하는 세트에 대한 작업 항목의 총 수를 집계 변경 내 자신의 – bash721

답변

1

Aggregate()을 각 회원 아래 집합으로 변경하고 전체 [MyCustomSet]이 아닌 것으로 변경하려고한다고 생각합니다. 같은 뭔가 :

MEMBER [Measures].[MyMeasure] AS 
    Aggregate([HR].[Mgr Hierarchy].CurrentMember, [Measures].[#Work Units]) 

편집가 : 당신이 각 상위 수준에서 변경 집계를 찾고 있다면, 아마도 당신이 부속을 사용하여보고해야한다.

SELECT 
    [Measures].[#Work Units] ON COLUMNS, 
    NON EMPTY [HR].[Mgr Hierarchy].Members ON ROWS 
FROM (
    SELECT EXCEPT(
     DESCENDANTS([HR].[Mgr Hierarchy].&[JSMITH],, SELF_AND_AFTER), 
     {DESCENDANTS([HR].[Mgr Hierarchy].&[MRICHARDSON],,SELF_AND_AFTER), DESCENDANTS([HR].[Mgr Hierarchy].&[LRICE],,SELF_AND_AFTER)} 
     ON COLUMNS 
    FROM [MyCube] 
) 
+0

에 그것을 밖으로 일하게했다. 이 계산에 사용자 정의 집합이 포함되어야하는 이유가 여기 있습니다. – bash721

+0

아, 죄송합니다. 나는 당신의 질문에 대해 오해했습니다. 따라서 사용자 정의 세트가 필요하며 각 레벨의 합계가 사용자 정의 세트에서 유지되거나 제거 된 멤버와 일치하도록하려고합니까? 너는 subselect를 시도 했는가? – findango

+0

아, 하위 쿼리에 대해 완전히 잊어 버렸습니다 (여전히 MDX에 처음 접했습니다). 그래서 쿼리를 수정했고 하위 쿼리가 올바른 멤버를 반환하지만 전체 쿼리에서 제외 된 멤버가 여전히 포함되어 있음을 확인했습니다. 이견있는 사람? 당신의 도움을 주셔서 감사합니다! – bash721

1

나는 sub-query으로 갈 것이다. 이 방법을 사용하면 유지하려는 [HR] 멤버 만 선택할 수 있고 시각적 (기본 동작) 대 비 시각적 모드를 사용하면 실제 선택된 멤버 또는 모든 멤버에 대한 집계 값을 얻을 수 있습니다. 치수 :

WITH SET [MyCustomSet] AS EXCEPT(
    DESCENDANTS([HR].[Mgr Hierarchy].&[JSMITH],, SELF_AND_AFTER), 
    {DESCENDANTS([HR].[Mgr Hierarchy].&[MRICHARDSON],,SELF_AND_AFTER), DESCENDANTS([HR].[Mgr Hierarchy].&[LRICE],,SELF_AND_AFTER)} 
) 

SELECT 
    [Measures].[#Work Units] ON 0, NON EMPTY [MyCustomSet] ON 1 
FROM (select [MyCustomSet] on 0 from [MyCube]) 
+0

제안 해 주셔서 감사합니다. 하위 쿼리가 경로가 될 수도 있지만 (findango도 제안 됨) 예외 구문은 제외 할 멤버를 필터링하지 않는 것 같습니다. 또한, 귀하의 버전의 쿼리를 시도한 후에는 하위 쿼리에서 외부 쿼리에 명명 된 세트를 사용할 수 없다는 메시지가 나타납니다. 입력 해 주셔서 다시 한 번 감사드립니다. – bash721

관련 문제