快速信息
我有一个Microsoft SQL Server分析项目,我必须在过去20天的时间范围内汇总计算成员的平均值。我不知道如何解决这个问题。
我有什么
我的计算成员看起来像:
CREATE MEMBER CURRENTCUBE.[Measures].[MyTotalSample]
AS [Measures].[ValueA]-[Measures].[ValueB]-[Measures].[ValueC],
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'MySamples';
此[MyTotalSample]会员与[时间]维度相关, 所以我每[时间]得到[MyTotalSample]。[Day]。
结果如下表所示,例如“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月8日”范围内[MyTotalSample]的平均值。
|------------------------------------|
|[Time].[Day] | MyTotalSample(Avg)|
|----------------|-------------------|
|January 27 2017 | 224 |
|January 28 2017 | 228 |
|January 29 2017 | 231 |
|January 30 2017 | 226 |
|------------------------------------|
什么是完美的是忽略空值...但现在不那么重要......
我希望有人有这方面的经验,可以给我一个策略如何做到这一点...
感谢您抽出时间
菲利克斯
答案 0 :(得分: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';