【发布时间】:2014-05-03 13:10:34
【问题描述】:
我正在寻找一种最佳实践和一般解决方案来表示 SSAS 维度中的报告层次结构。这是必要的,以便业务用户可以轻松地与 Excel 中的计算方案进行交互。
看看下面的层次结构:
但是我希望它表示为如下屏幕截图所示:
该屏幕截图的值为DB1(TURNOVER 和实际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