我的子级父层次结构有一个奇怪的问题,当所有子级一元运算符都是+时,父级的计算是不正确的。
下面是带有一元运算符的父子结构的运行。
-PBIT (+)
-OtherIncome (+)
-GrossProfit (+)
-Sales (+)
-Cost Of Sales (-)这是我遵循的http://geekswithblogs.net/darrengosbell/articles/57811.aspx指南,它工作得很好,除了这样一个事实,任何孩子都带有加号运算符的父母都会添加太多。
这是包含数据的输出。

正如您所看到的,PBIT价值是将销售额、销售成本和其他收入相加,从而获得价值。(即使一元运算符的销售成本为负!!)
起初,我认为它可能只是excel,但看看它和MDX查询给出的值是一样的。
为什么?似乎只有当一元运算符是+时,其他运算符才能正常工作。
发布于 2013-08-23 02:49:26
您提到的帖子并没有描述带有一元操作符的父子层次结构的设置,而是描述了如何在父子层次结构中的多个位置使用一个成员。这涉及一种多对多的关系。根据http://connect.microsoft.com/SQLServer/feedback/details/243429/wrong-calculation-for-unary-operator-with-many-to-many-relationships的说法,一元运算符聚合不能正确处理多对多关系,这是分析服务的一个众所周知的局限性,而且微软似乎不会很快改变这一点。
但至少看起来你找到了一种变通方法。
发布于 2013-08-26 18:00:30
我建议阅读http://www.sqlbi.com/articles/many2many/的许多革命白皮书中的“用一元运算符进行层次结构重分类”一章,它为这个问题提供了一个很好的解决方案。
或者,通过使用自定义汇总成员,您可以实现类似的功能。
https://stackoverflow.com/questions/18381811
复制相似问题