2009-08-17 3 views
2

나는 SSAS에 대해 다소 새로운 입장이며이 문제를 해결하는 방법을 완전히 모르고있다. Thresholds라는 차원이 있습니다.큐브 계산 된 멤버 질문

[임계 값 년], [THRESHOLD1 양], [THRESHOLD2 양], [문턱 3 양]

나는 또한 조치가 불렀다 [자격위원회], [Tier1 : 임계 값 차원 내에서 다음 회원이 있습니다 양], [Tier2 양], [계층 3의 양] 그 꼭대기에

[성명 날짜]라는 시간 차원 그래서 기본적으로 여기

내가 할 노력하고 무엇도있다. 최종 사용자가 [Statement Dates]에서 시간 프레임을 선택할 때 [자격 부여위원회]를 요약하고 해당 연도의 임계 값과 비교하여 확인하는 계산 된 멤버를 만들고 싶습니다. [Threshold1 Amount]보다 크면 임계 값 2와 3에 동일한 로직을 적용하여 [Tier1 Amount] 값을 반환합니다.

누군가 내가 할 일에 대한 로드맵을 줄 수 있습니까? 이 작업을 수행하기 위해 기본 데이터베이스의 데이터를 재구성해야한다면 정말 도움이 될 것입니다. 도움에 미리 감사드립니다.

답변

2

음, [Qualifying Commission]은 추가 측정으로 가정합니다. 즉, 합계가 SSAS에 의해 처리됩니다.

기본적으로 임계 값을 얻으려면 [Statement Dates] 아래에있는 연도를 찾아야합니다.

그럼 일부 청크로 나누어 보겠습니다. 우리가 할 첫 번째 것은 우리의 권리 [Threshold Year] 찾는 것이다

create member currentcube.[Measures].[Threshold Amount] as 
    case 
     when [Qualifying Commission] > 
       [Current Threshold].Item(0).Properties("Threshold1 Amount") then 
      [Measures].[Tier1 Amount] 
     when [Qualifying Commission] > 
       [Current Threshold].Item(0).Properties("Threshold2 Amount") then 
      [Measures].[Tier2 Amount] 
     when [Qualifying Commission] > 
       [Current Threshold].Item(0).Properties("Threshold3 Amount") then 
      [Measures].[Tier3 Amount] 
     else 0 
    end 

을 봐라, 당신은 가스로 요리하고 있습니다 :

create set [Current Threshold] as 
    iif([Statement Dates].[YQM].CurrentMember IS [All] 
     ,[Threshold Year].[All] 
     ,StrToSet("[Threshold Year].[" + 
      Ancestor([Statement Dates].[YQM].CurrentMember 
      , [Statement Dates].[YQM].[Year]).Name + 
     "]")) 

다음, 우리는 올바른 숫자를 얻기 위해이 임계 값을 적용 할 수 있습니다.