3

我有一个相当复杂的计算度量,可以完美地适用于多维数据集的每一行数据。但是,我需要逐行计算这些值的总和。但是计算度量的行为似乎在 Excel 中的小计和总计行中,它再次执行计算而不是对前面的行求和。有没有办法让计算的度量在每一行上执行它的计算,但他们在总计和小计中执行传统的 SUM?

提前致谢。

4

4 回答 4

0

有一个解决方案,但这真的很难看:

你必须使用类似的东西

SCOPE([dim1].[hier1].[All]);
    [Measures].[MyCalculatedMeasure] = Sum([dim1].[hier1].[bottomlevel].Members, [Measures].[MyCalculatedMeasure]);
END SCOPE;

对于所有维度的所有层次结构,无论是属性还是用户层次结构,酌情替换dim1, 。hier1bottomlevel

于 2013-07-26T15:23:46.963 回答
0

计算的度量值不聚合;每次都会计算。

于 2013-06-28T22:43:13.583 回答
0

您需要模拟计算成员的真实度量行为。使用 Null 值进行虚拟实测,然后使用 Scope 在粒度级别上定义您的公式。有关更详细的答案,请参见此处: http: //blog.crossjoin.co.uk/2013/05/29/aggregating-the-result-of-an-mdx-calculation-using-scoped-assignments/

于 2015-06-24T13:41:10.580 回答
0

我找到了最简单的方法:

  1. 在 DSV 的相应度量表中创建一个新的命名计算。(右键单击,添加新的命名计算并将其表达式设置为 CAST(NULL as [插入适当的数据类型])。
  2. 将新命名的计算添加为多维数据集中的度量。
  3. 在多维数据集的计算区域切换到脚本视图并添加以下内容:

({[Measures].[您在步骤 1 中创建的命名计算]},Leaves())=您的复杂计算;

这将定义设置在叶级别,并且所有聚合都可以完美运行。

参考:http ://sqlblog.com/blogs/mosha/archive/2005/02/13/performance-of-aggregating-data-from-lower-levels-in-mdx.aspx

于 2016-09-28T17:34:47.027 回答