회원의 모든 후손을 더 높은 수준으로 얻는 MDX 전화에서 특정 회원을 제외하는 방법
-
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]}
제휴하지 않습니다 StackOverflow