【问题标题】:Representing Calculation Schemes as Hierarchy in SSAS (maybe Replacing dimension members)在 SSAS 中将计算方案表示为层次结构(可能替换维度成员)
【发布时间】:2014-05-03 13:10:34
【问题描述】:

我正在寻找一种最佳实践和一般解决方案来表示 SSAS 维度中的报告层次结构。这是必要的,以便业务用户可以轻松地与 Excel 中的计算方案进行交互。

看看下面的层次结构:

但是我希望它表示为如下屏幕截图所示:

该屏幕截图的值为DB1TURNOVER 和实际DB1 的总和)。

作为一个想法,我在 Cube 中添加了以下代码:

Scope([DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[DB1]);
  This =  [DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[DB1]
        + [DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[TURNOVER];
End Scope;

Scope([DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[DB2]);
  This =  [DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[DB2]
        + [DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[DB1];
End Scope;

但是,这会影响传播到所有其他维度的维度的所有成员。因此,我认为我不应该创建维度的常规聚合值并添加:

Scope([DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[-1]);
  This =  [DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[-1]
        - [DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[DB2]
        - [DIM Contribution Margin].[Hierarchy].[CM1 KEY].&[DB1];
End Scope;

但是,这在某种程度上仍然会影响其他维度。 我很感谢在 SSAS 维度中解决这个问题的每一个想法。

我有以下想法:

  • 表示计算模式的维度不必聚合。但是 isAggregate = false 不是解决方案,因为我必须选择一个默认成员...
  • 我尝试使用计算维度成员,但是它们只能是叶子而没有节点,所以它不起作用。
  • 据我所知,计算的维度成员不可能放置在确切的位置,总是出现在最后,因此没有机会在那里解决问题。

【问题讨论】:

    标签: sql-server ssas mdx


    【解决方案1】:

    我会在层次结构的顶部添加一个或多个级别,以使用自动聚合来管理您的 DB1 和 DB2 总数。我将填充源列以对数据进行分组,例如您当前的 TURNOVER 和 DB1 成员的总和将成为更高级别的 DB1 成员。

    【讨论】:

    • 感谢您的想法。这也是我最初的想法。然而,在这种情况下,层次结构总结得很好。它的结构不是报告结构。我将 DB2 作为根节点,包含 INDIRECTCOST 和 DB1 等等。因此,营业额处于第三级。我希望能够在 Excel 中拖放所需的报告结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多