2009-08-17 70 views
2

我是相当新的SSAS和我如何解决这个问题难倒完全。我有一个称为阈值的维度。在阈值尺寸有以下成员:立方计算成员问题

[阈值年],[阈值1金额],[阈值2量],[阈值3金额]

我还叫措施[资格审查委员会],[层1金额],[金额层2],[金额的Tier3]

最重要的是还有一个名为[声明日期]时间维度

所以基本上这里就是我要做的。我想创建的是,当最终用户选择从[语句日期]的时间帧我要总结[资格审查委员会],并检查它针对相应年度阈值量的计算的部件。如果它大于[Threshold1金额],我希望它返回[Tier1金额]度量,采用与阈值2和3相同的逻辑。

有人可以给我一个我需要做什么的路线图吗?如果我需要重组的基础数据库中的数据,使这项工作,那么这将是很有益的认识。先谢谢您的帮助。

回答

2

那么,让我们假设[Qualifying Commission]是一个加法度量,意味着总和由SSAS照顾。

从本质上讲,我们只需要找到我们的任何一年[Statement Dates]下,让我们的阈值。

所以,让我们把它分解为若干块。我们要做的第一件事就是找到我们的权利[Threshold Year]

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 + 
     "]")) 

接下来,我们将应用这个阈值以获得正确的号码:

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 

瞧,你与天然气做饭。