MDX : 계산 된 치수?
-
05-07-2019 - |
문제
이것이 가능한지 아닌지, 또는 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]
큐브의 계산 스크립트에서 스코프 지정을 수행하여 이런 종류의 일을 할 수도 있습니다.
제휴하지 않습니다 StackOverflow