迄今为止的MDX计算度量

时间:2019-07-19 09:51:51

标签: ssas mdx olap

我有一个OLAP多维多维数据集,其最简单的形式包含:

  • 具有NetAmount度量的事实表
  • 时间维度,其中包含年,月,日,月,日等字段

要求是用户希望能够比较从每年年初到特定日期的总NetAmount。可以通过在日期和月份字段中设置过滤器来选择日期。例如,用户希望查看以下商品的总价值:

  • 2019年1月1日至2019年1月20日
  • 2018年1月1日至2018年1月20日
  • 2017年1月1日至2017年1月20日

满足此要求的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用YTD函数创建计算所得成员,如下所示:

CREATE MEMBER CURRENTCUBE.[Measures].[NetAmountYTD]
as

Aggregate(YTD ([Time].[Time].CurrentMember), [Measures].[NetAmount])

您还可以创建实用程序维度(例如TimeUtility),并添加YTD成员,然后按以下方式对其进行定义:

Scope([TimeUtility].[YTD]);
    this = Aggregate(YTD ([Time].[Time].CurrentMember), [TimeUtility].[DefaultMember]);
End Scope;

通过这种方式,无论您对[TimeUtility]采取什么措施。[YTD]都会为您提供该措施的年初至今,而不仅仅是NetAmount,因此它将是通用的解决方案。