이상한 방식으로 계산해야하며 대부분의 경우 잎과 다차원 차원의 집계 수준 모두에서 작동합니다. 그러나 하나의 특정 차원에 대해 정확하게 집계 된 값을 제공하지는 않습니다. 당신이 볼 수 있듯이SSAS에서 계산 된 측정 값 집계의 다른 비틀림
내가 지금 가지고하는 것은 ...
CREATE MEMBER CURRENTCUBE.[Measures].[Active Commitments]
AS NULL,
FORMAT_STRING = '#,#',
VISIBLE = 1;
SCOPE (DESCENDANTS([Date Dimension].[Fiscal Year Hierarchy],,AFTER));
[Measures].[Active Commitments] =
iif([Constituent Activity].[Type].currentMember.Properties("Name")="Correspondence",
sum(([Commitment Dates].[Start Date], NULL: [Date Dimension].[Fiscal Year Hierarchy]), [Measures].[Commitment Count]),
sum(([Commitment Dates].[First Funded Date], NULL: [Date Dimension].[Fiscal Year Hierarchy]), [Measures].[Commitment Count]))
- sum(([Commitment Dates].[Stop Date],[Commitment].[Was Commitment Ever Active].[Sometime Active], NULL: [Date Dimension].[Fiscal Year Hierarchy]), [Measures].[Commitment Count]);
END SCOPE;
SCOPE (DESCENDANTS([Date Dimension].[Fiscal Year Hierarchy],,AFTER));
<Similar to above>
는 복잡성은 "약속"의 한 유형이 [Start Date]
에서 시작하고 다른 사람들이 [First Funded Date]
에서 시작한다는 것입니다.
의 여러 멤버를 선택하면이 경우 SCOPE 문에 currentMember
을 사용할 수 없으므로 실패합니다. 예를 들어, 다음 MDX는 성공적으로 실행되지만 출력은 #Error
는 -
select
[Measures].[Active Commitments] on columns
,[Date Dimension].[Fiscal Year Hierarchy].[Fiscal Year].&[2011\12] on rows
from Compass3
where
{[Constituent Activity].[Description].[XYZ]
,[Constituent Activity].[Description].[ABC]}
나는 재귀 인 SCOPE 문 내에서 인코딩해야 어떻게 생각 ...
if a single member of [Constituent Activity] is current
then use the calc as defined above
else use [Measures].[Active Commitments] = sum(all selected members of [Constituent Activity], [Measures].[Active Commitments])
...하지만 어떻게 것 내가 쓴거야?
감사합니다. 나는 그것을 제어 할 수는 있지만 상속 된 입방체이며 원하지 않는 부작용을 피하기 위해 최대한 표면에 가깝게 변경하려고 노력했습니다. 날짜 처리를위한 현재 구조는 매우 복잡하므로 다른 날짜를 추가하는 것은 까다 롭습니다. – MattClarke