2009-08-17 41 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 

瞧,你與天然氣做飯。