문제

이것이 가능한지 아닌지, 또는 MDX에 대한 제한된 지식이 잘못된 방향으로 나를 밀고 있는지 모르겠습니다 ...

내가 다루고있는 큐브에는 날짜에 대한 두 가지 차원이 있습니다. [Statement Dates] 그리고 [Premium Dates]. 각각의 계층 구조에서는 다음과 같습니다.

[Statement Dates].[Statement Year].[2008]  
[Payment Dates].[Payment Year].[2008]

내가 구현하고있는 비즈니스 로직의 경우 다음과 같은 작업을 수행해야합니다.

select
  ({ [Measures].[Commission] }) on columns,
  ({[Products].[Product Category]}) on rows
from [Cube]
where
(
  IIF( [Products].[Product Category].CurrentMember.Name = "Some Category",
       [Statement Dates].[Statement Year].[2008], 
       [Payment Dates].[Payment Year].[2008] )
)

따라서 사용중인 제품 카테고리를 기반으로 연도를 필터링하는 데 사용할 차원을 차별해야합니다.

이것은 OK를 구문 분석하고 쿼리가 실행되지만 숫자는 IIF 진술은 항상 거짓을 반환하고 있습니다.

도움이 되었습니까?

해결책

WHERE 절은 먼저 평가를 받기 때문에 IIF의 .CurrentMember 함수는 "모든 제품 Cateogories"만 볼 수 있습니다. 이 경우 [제품].

가능한 한 가지 가능한 작업은 다음과 같은 계산을 수행하는 것입니다.

WITH MEMBER Measures.Commission2 as 
SUM(
{[Products].[Product Category].[Product Category].Members}
, IIF( [Products].[Product Category].CurrentMember.Name = "Some Category"
   , ([Statement Dates].[Statement Year].[2008],[Measures].[Commission])
   , ([Payment Dates].[Payment Year].[2008].[Measures].[Commission]) )
)
select  
   ({ [Measures].[Commission2] }) on columns
,  ({[Products].[Product Category]}) on rows
from [Cube]

큐브의 계산 스크립트에서 스코프 지정을 수행하여 이런 종류의 일을 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top