2008-09-29 6 views
11

OLAP 데이터베이스에서 나는 Company -> Region -> Area - > 사이트 -> 방. 회사 차원에서 특정 멤버의 모든 자손을 얻으려면 다음 MDX를 사용하고 있습니다.더 높은 수준의 멤버의 모든 자손을 가져 오는 MDX 호출에서 특정 멤버를 제외하는 방법

DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE) 

는 지금 보고서에서 "중복"라는 이름의 특정 지역을 제외하는 요구 사항이있다. 이 특정 지역 (및 모든 하위 항목)을 제외시키기 위해 위의 MDX를 어떻게 변경할 수 있습니까? 이 지역은 "중복"이라고 불릴 것이지만 다른 지역 이름은 변경 될 수 있으므로 하드 코드를 원하지 않습니다.

답변

21

EXCEPT 함수가 설정을 가져오고 원하지 않는 멤버를 제거합니다. 이것은 두 번째에서 언급 한 내용을 제외하고 당신에게 첫 세트에서 모든 것을 제공

EXCEPT(
{DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)}, 
{DESCENDANTS([Location].[Whatever].[Redundant],[Location].[Site], SELF_AND_BEFORE)} 
) 

: 귀하의 경우에 당신은 말할 필요. 그것은 다음과 같이 이해하기 쉽게 :

EXCEPT({the set i want}, {a set of members i dont want}) 

세 번째 (선택 사항) 인수에 대해 걱정할 필요가 야해 : http://msdn.microsoft.com/en-us/library/ms144900.aspx

0

간단하게 사용하여 계층 구조 멤버를 반환 "-"당신이 '돈 멤버를 제외 할 싶어. 알 수없는 멤버를 제외하는 방법은 다음과 같습니다.

select 
{[Module].[Hierarchy].[Module].Members - [Module].[Hierarchy].[Module].[Unknown]} on rows, 
{[Date].[Month-day].[Day Of Month].Members - [Date].[Month-day].[Day Of Month].[Unknown]} on  columns 
from [StatsView] 
where {[Measures].[Maintainability Index]} 
관련 문제