我有一个SSAS 2012多维数据集,它有一个报告操作。根据用户需要选择特定的Scenario
动作本身运作正常,我遇到的问题是我为动作定义的条件只能在大部分时间。
在Excel中浏览多维数据集时,如果我向“值”添加“活动”(度量),并且我将方案放在列之间,只要我右键单击一个活动单元格(不包括“总计”),该操作就可以按预期方式使用。会出现几列示例数据:
2010 Actuals 2011 Actuals
Activity -13,812,430 11,938,733
在浏览多维数据集时,如果除了上述配置之外,我在行上放置了一个帐户层次结构,并展开了最低级别,那么对于某些单元格,该操作将不可用,而对于大多数其他单元格则可用。会出现几列示例数据:
Row Labels 2010 Actuals 2011 Actuals
123 - ABC -1,889 41,251
456 - DEF -562,243 -2,053,282
789 - GHI -25,000 -12,454
由于操作条件仅要求选择特定方案(2010 Actuals,2011 Actuals,ect),我希望右键单击示例数据中的任何度量值都可以使用该操作。该操作适用于6个单元格中的5个,但不适用于456 - DEF
2011 Actuals
。 导致这种情况的原因是什么?
行动中的条件MDX是:
[Scenario].[SA - Scenario].CurrentMember <> [Scenario].[SA - Scenario].[All]
在运行SQL事件探查器时,如果我右键单击行为正常的单元格,然后单击“显示详细信息”,则发送的MDX为:
DRILLTHROUGH MAXROWS
1000 SELECT FROM [SomeName] WHERE
([Measures].[Activity]
,[Account].[A1 - Level 1].[Level 1].&[Balance Sheet].&[Assets].&[Current Assets].&[Cash].&[Cash in Bank].&[456 - DEF]
,[Scenario].[SA - Scenario].[Scenario].&[79])
如果我点击不的单元格可以执行此操作,则发送的MDX为:
DRILLTHROUGH MAXROWS
1000 SELECT FROM [SomeName] WHERE
([Measures].[Activity]
,[Account].[A1 - Level 1].[Level 1].&[Balance Sheet].&[Assets].&[Current Assets].&[Cash].&[Cash in Bank].&[456 - DEF]
,[Scenario].[SA - Scenario].[Scenario].&[80])
为单元格发送的MDX之间的唯一区别似乎是Scenario
值,我认为这是正确的,因为我们从Account中选择了相同的成员,只是一个不同的场景。在一种情况下,条件似乎评估为真,而在第二种情况下,它似乎评估为假,因为该操作不可用。
不可否认,我对MDX不太满意。但是,由于大部分时间该操作都可用,我相信该表达式有效且有效,否则,该操作永远不可用。 (当我处于伪造状态时就是这种情况)。
作为一个完整性检查,如果我将MDX条件设置为TRUE
,则该操作始终可用。如果我为另一个维度切换Account
并钻取到最低级别,我无法重现这一点。对于某些情况,在最低帐户级别下,它似乎与某些成员有关。
我已经看过如何设置帐户维度,与其他维度相比,我没有看到任何因为结构不同而跳出来的东西。
还有什么可能导致我尚未研究过这种行为?
答案 0 :(得分:1)
您的表达式将评估当前场景和总计的度量,并比较两个数字:
[Scenario].[SA - Scenario].CurrentMember <> [Scenario].[SA - Scenario].[All]
尝试以下方法:
Not ([Scenario].[SA - Scenario].CurrentMember Is [Scenario].[SA - Scenario].[All])