회원의 모든 후손을 더 높은 수준으로 얻는 MDX 전화에서 특정 회원을 제외하는 방법

StackOverflow https://stackoverflow.com/questions/148875

  •  02-07-2019
  •  | 
  •  

문제

OLAP 데이터베이스에서는 레벨 회사 -> 지역 -> 지역 -> 사이트 -> 객실로 구성된 '위치'계층이 있습니다. 다음 MDX를 사용하여 회사 수준에서 특정 회원의 모든 후손을 얻습니다.

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

이제 보고서에서 "중복"이라는 특정 지역을 제외해야합니다. 이 특정 지역 (및 모든 후손)을 배제하기 위해 위의 MDX를 어떻게 변경할 수 있습니까? 나는이 지역이 "중복"이라고 불리는 것을 알고 있지만 다른 지역 이름을 하드 코딩하고 싶지는 않습니다.

도움이 되었습니까?

해결책

제외 기능은 세트를 가져 와서 원하지 않는 멤버를 제거합니다. 귀하의 경우에는 다음과 같이 말해야합니다.

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

다른 팁

계층 구조에 대한 회원을 반환 할 때는 단순히 "-"원하지 않는 회원을 제외하기 위해 "-"-"-"-"-"-"-"-"-"-"-"-"-"-"-"-"원하지 않는 회원을 제외한다. 이것이 내가 알려지지 않은 회원을 제외하는 방법입니다.

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]}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top