MDX中有什么方法可以动态累积度量?

时间:2020-09-29 11:42:41

标签: ssas mdx

我要累计的所有度量均具有相同的公式。那么,有没有办法使用函数之类的东西或计算量中的任何东西来解决此问题?

1 个答案:

答案 0 :(得分:0)

有两种方法可以实现您的目标:

1-第一个解决方案是基于使用商业智能向导为您的解决方案添加时间智能的。

时间智能增强功能是多维数据集增强功能,可将时间计算(或时间视图)添加到选定的层次结构中。此增强功能支持以下类别的计算:

  1. 列表项

  2. 至今。

  3. 一段时间内的增长时期。

  4. 移动平均值。

  5. 平行期间比较。

该向导将让您选择要应用的计算和度量。

访问:https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/define-time-intelligence-calculations-using-the-business-intelligence-wizard

访问:http://www.ssas-info.com/analysis-services-articles/62-design/2465-ssas-time-intelligence-wizard

2-使用维表计算您的计算,此解决方案虽然更复杂,但功能非常强大,是最佳实践之一。

第一步是创建一个新的物理尺寸, 我们需要的每个计算的成员。我们不 实际上需要为此在我们的数据仓库中创建一个表 目的,我们可以使用这样的SQL视图来做到这一点

  CREATE VIEW DateTool AS    SELECT ID_Calc = 1, Calc = 'Real Value'    UNION ALL    SELECT ID_Calc = 2, Calc = 'Year To Date' 

接下来,我们需要将此视图添加到我们的DSV中,并基于 在上面。维必须具有一个层次结构,并且该层次结构必须 将其IsAggregatable属性设置为False。 DefaultMember 然后应将此层次结构的“属性”设置为“实际值” 会员。给这个尺寸起个名字可能很困难,因为它 应该是可以帮助用户了解其功能的内容– 在这里,我们将其称为“日期工具”。它不需要任何关系 衡量小组完全可以工作。

我们的下一个任务是覆盖每个成员返回的值,以便 他们返回我们想要的计算。我们可以使用 多维数据集的MDX脚本中的简单SCOPE语句:

此代码可让您为所有度量创建YEAR-TO-DATE汇总。

  SCOPE ([Date Tool].[Calculation].[Year To Date]);     THIS = AGGREGATE (            YTD ([Date Order].[Calendar].CurrentMember),            [Date Tool].[Calculation].[Real Value]); END SCOPE;

访问:https://subscription.packtpub.com/book/big_data_and_business_intelligence/9781849689908/6/ch06lvl1sec35/calculation-dimensions