2017-05-11 68 views
0

快速信息彙總計算成員平均超過一定時間

我有一個Microsoft SQL Server分析項目中,我在過去20的時間範圍彙總計算成員的平均天。我不知道如何解決這個問題。

我有什麼

我的計算成員的樣子:

CREATE MEMBER CURRENTCUBE.[Measures].[MyTotalSample] 
AS [Measures].[ValueA]-[Measures].[ValueB]-[Measures].[ValueC], 
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'MySamples'; 

這[MyTotalSample]會員涉及到[時間]維度, 所以我得到的[MyTotalSample]每個[時間]。[天]。

結果如下表所示,其中例如「2017年1月27日」的值爲「2017年1月27日」的所有[MyTotalSample]值的總和。

|---------------------------------| 
|[Time].[Day] | MyTotalSample | 
|---------------------------------| 
|January 27 2017 | 221   | 
|January 28 2017 | 303   | 
|January 29 2017 | 298   | 
|January 30 2017 | 238   | 
|---------------------------------| 

到目前爲止工作。


問題

我,但想也做的是平均每天的[MyTotalSample]的範圍內,從當天至20天過去。

要得到類似下表所示的值,「2017年1月27日」的值在「2017年1月27日」到「2017年1月08日」範圍內的[MyTotalSample]的平均值。

|------------------------------------| 
|[Time].[Day] | MyTotalSample(Avg)| 
|----------------|-------------------| 
|January 27 2017 | 224    | 
|January 28 2017 | 228    | 
|January 29 2017 | 231    | 
|January 30 2017 | 226    | 
|------------------------------------| 

什麼是完美的是忽略空值...但是,這不是那麼重要了,現在...


我希望有人有經驗與和可以給我一個strategie如何做到這一點?

感謝您抽出寶貴時間

菲利克斯

回答

0

我們在msdn找到了解決方案!

CREATE MEMBER CURRENTCUBE.[MEASURES].[MyTotalSample Moving Average] 
AS Avg 
(
    { 
      [Time].[Hierarchy].CurrentMember.Lag(20) 
     : 
      [Time].[Hierarchy].CurrentMember 
    } 
    , 
    [Measures].[MyTotalSample] 
), 
VISIBLE = 1 , DISPLAY_FOLDER = 'MyDisplayFolder'; 
+0

默認情況下忽略空值 - >「Analysis Services在計算一組數字中的平均值時忽略空值。 – Felix