2014-01-16 2 views
2

children 함수는 멤버 집합을 반환합니다. 하지만 여러 명의 자녀가 필요합니다.MDX 여러 멤버의 자식

문제는 내가 그런 식으로 작동하도록 연합 (EU)을 사용할 수있다 :

Union([Geography].[Geography].[USA].children,[Geography].[Geography].[Canada].children) 

나는 그것이 얼마나 많은 회원 모르는 ... 그래서 실제로 모든 아이들이 필요 일원의 세트의.

좋아 :

([Geography].[Geography].[USA],[Geography].[Geography].[Canada],[Geography].[Geography].[GB]).children 

함수처럼 있습니까?


나는 내 질문에 답할 수 없어 단지 편집 만합니다. DHN의 대답의 도움과 나는 해결책을 발견 몇 가지 뇌의 작업을 통해 내가 사용할 수 있습니다 나를 위해 작업을 수행

Except(DRILLDOWNLEVEL({[Geography].[Geography].[USA],[Geography].[Geography].[Canada]},,0), 
{[Geography].[Geography].[USA],[Geography].[Geography].[Canada]}) 

합니다. 설명 : 도구가 제공하는 요소를 드릴 다운하여 어린이와 부모를 반환 한 다음 DHN의 생각을 사용하고 부모를 제외하고 목록을 조금 정리합니다.

잘하면 이해할 수 있습니다.

답변

0

실제로 실제로 Crossjoin을 사용하여 원하는 세트를 얻을 수 있습니다.

[Geography].[Geography].[USA] * [Geography].[Geography].[Canada] * [Geography].[Geography].[GB] 

같은

뭔가하지만 당신은 단지 몇 가지 검색 기준이있는 경우이 만 적절한 솔루션입니다.

또는 Except을 사용하여 관심이없는 기준을 삭제할 수 있습니다.

Except([Geography].[Geography].children, [Geography].[Geography].[Germany]) 

이 당신에게 [Germany] 중 하나를 제외하고 [Geography] 차원의 전체 내용을 줄 것이다.

희망이 조금 도움이됩니다. 의 코멘트 후

편집이 질문의 일부가 아니었지만, 나는 당신이 필요로하는 것은 MemberToStr() 기능이라고 생각 확인

, TO. 문서 here을 찾으십시오.

트릭을해야한다고 생각합니다.

with member [Measures].[Cities] 
as  membertostr([Geography].[Geography].members.children) 
select [Measures].[Cities] on 0 
from [WhatEverYourCubeNameIs]  
where (
    [Geography].[Geography].[USA], 
    [Geography].[Geography].[Canada] 
) 

이 쿼리는 완전히 테스트되지 않았습니다. 내가 을 사용했기 때문에 잠시 지났기 때문에 나는 또한 내 기술을 잃어 버렸을지도 모른다. 선택 사항은 사용자에 따라 다르기 때문에 조회를 동적으로 작성해야합니다. 하지만 당신이 그 사실을 알고 있다고 확신합니다. ;)

+0

빠른 답변 감사드립니다. 그러나 문제는 구성원 집합이 동적으로 생성된다는 것입니다. 즉, 누군가가 드롭 다운에서 여러 국가를 선택합니다. 그래서 누군가가 미국과 캐나다 (그리고 아이들은 도시)를 선택하면 "시애틀, LA, 밴쿠버 ..."와 같은 세트를 반환해야합니다. – user3202100

+0

제 대답을 찾으십시오. 다음 번에 귀하의 질문에 더 분명해야합니다. 당신이 성취하려고 시도하는 것이 분간력이 아니 었습니다. 그럼에도 불구하고 도움이되기를 바랍니다. ;) – DHN

+0

감사합니다. 친구 - 내 질문도 편집했습니다. 우리 둘 다 해결책을 찾은 것 같네요. :) – user3202100

4

Descendants method을 사용할 수 있습니다. 링크 된 설명의 네 번째 형식은 첫 번째 인수로 집합을 사용합니다.따라서

Descendants({ 
      [Geography].[Geography].[USA], 
      [Geography].[Geography].[Canada], 
      [Geography].[Geography].[GB] 
      }, 
      1, 
      SELF 
      ) 

정확히 원하는 것을 제공해야합니다.