mdx - 在 MDX 中,如何对子成员执行计算然后聚合这些子成员?

标签 mdx olap

我有如下表的数据,其中 Expected Shipment Amount New 实际上是每次 claim 计数的平均发货量,但我无法正确汇总(总计应为 26.3,不是 0)。有谁知道如何做到这一点?

CliID | Claim Count | Expected Shipment Amount | CliId Count   Expected Shipment Amount New
All   |      5      |           61.8           |       2     |              0
159061|   (null)    |          (null)          |    (null)   |            (null)
159063|   (null)    |          (null)          |    (null)   |            (null)
166759|      2      |           34.2           |      1      |             17.1
166769|   (null)    |          (null)          |    (null)   |            (null)
223983|      3      |           27.6           |      1      |             9.2

这个预成员(member)应该计算每个单独的 CliID 的平均值,如果没有 Expected Shipment Amount 则返回 null:

CREATE MEMBER CURRENTCUBE.[Measures].[Expected Shipment Amount Pre] AS IIf(IsLeaf([Claim].[CliID].currentmember), ([措施].[预期装运量]/[措施].[ claim 数量]),0), 可见 = 0;

然后这是应该可见的,以便正确聚合所有内容:

CREATE MEMBER CURRENTCUBE.[Measures].[Expected Shipment Amount 新] AS SUM([措施].[预期装运量预]), VISIBLE=1;

很明显,在聚合级别,它正在查看 Expected Shipment Amount Pre 并返回 0,因为聚合本身不是叶子,但对于聚合我希望它计算出所有的 child ,然后将它们加起来。我怎样才能做到这一点?

最佳答案

在你的第二步,你应该使用

CREATE MEMBER CURRENTCUBE.[Measures].[Expected Shipment Amount New]
 AS SUM(EXISTING [Claim].[CliID].[CliID].Members, [Measures].[Expected Shipment Amount Pre]),
VISIBLE=1;

我。 e.对 CliID 级别的成员求和。

编辑 您可以尝试加快速度的方法是更多地依赖内置的 Analysis Services 聚合。为此,根据事实表中的 Expected Shipment Amount 列创建一个物理度量 Expected Shipment Amount New,并设置其聚合函数求和。然后,在计算脚本中,只需添加

SCOPE([Claim].[CliID].[CliID].Members);
    [Measures].[Expected Shipment Amount New] = [Measures].[Expected Shipment Amount] / [Measures].[Claim Count];
END SCOPE;

这将用平均计算覆盖叶级别上“新的预期装运量”的计算,但不会说明有关 CliID 属性层次结构的 All 级别的任何内容.因此,对于此级别,应该进行指定的度量聚合,即 sum

关于mdx - 在 MDX 中,如何对子成员执行计算然后聚合这些子成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26489471/

相关文章:

sql-server - 累积总和-选择层次结构的部分

r - 在 Cube MDX 中使用 R,如何传递和检索数组?

excel - 对 Analysis Services 的 VBA Repitive MDX 查询

java - 将 Pentaho Reporting 与 Java Web 应用程序集成

olap - MDX:如何将具有多个成员的元组转换为具有单个成员的元组?

sum - MDX 对一维层次结构中的所有值求和

SSAS 2012 计算成员百分比

java - 即席 sql 的列名

sql-server - MDX 的智能感知?