Analysis Services父子层次结构

时间:2013-08-22 13:27:04

标签: c# sql ssas data-warehouse business-intelligence

我的子父级层次结构存在一个奇怪的问题,当所有子一元运算符都是+时,父级的计算是不正确的。

这是使用一元运算符的父子结构的向下运行。

-PBIT (+)
   -OtherIncome    (+)
   -GrossProfit    (+)
      -Sales       (+)
      -Cost Of Sales   (-)

这是我遵循http://geekswithblogs.net/darrengosbell/articles/57811.aspx的指南,这一切都很有效,除了任何有孩子的父母都加上加号运算符的事实会增加太多。

这是输出数据。

enter image description here

正如您所看到的,PBIT值正在将销售额,销售成本和其他收入加在一起以获得价值。 (即使销售成本一元运算符为负!!)

起初我认为它可能只是优秀,但看着它和MDX查询给出了相同的价值。

为什么呢?似乎只有当一元运算符是+时,任何其他运算符才能正常工作。

2 个答案:

答案 0 :(得分:1)

您所引用的帖子并未描述使用一元运算符设置父子层次结构的设置,正如我从上下文中假设的那样,但描述了如何在父子层次结构中的多个位置使用一个成员。这涉及到一种多对多的关系。根据{{​​3}},Analysis Services的一个已知限制是,一元运算符聚合无法与多对多关系一起正常工作,而且微软似乎不会很快改变它。

但至少看来你找到了解决方法。

答案 1 :(得分:0)

我建议在http://www.sqlbi.com/articles/many2many/的许多革命白皮书中阅读“使用一元运算符进行层次结构重新分类”一章 它为这个问题提供了一个很好的解决方案。

或者通过使用自定义汇总成员,您可以实现类似的目标。