【问题标题】:SSAS calculated measure not slicing with its filtered dimensionSSAS 计算的度量未使用其过滤维度进行切片
【发布时间】:2020-09-22 11:46:11
【问题描述】:

我已经创建了一个这样的度量,问题是它没有按照自己的维度进行切片。是这样预期还是我错过了什么。我是 MDX 脚本的新手,我们将不胜感激。

CREATE MEMBER CURRENTCUBE.[Measures].[CHARGE_CODE_TEST]
 AS Aggregate([Charege].[Station].&[CA2],[Measures].[Inv Line Amt]), 
VISIBLE = 1  ; 

CREATE MEMBER CURRENTCUBE.[Measures].[CHARGE_CODE_TEST]
     AS Aggregate({[Charege].[Station].&[CA1],[Charege].[Station].&[CA2]},[Measures].[Inv Line Amt]), 
    VISIBLE = 1  ; 

【问题讨论】:

    标签: ssas mdx cube msbi multidimensional-cube


    【解决方案1】:

    它应该是这样工作的 - 它按照你编写的方式工作 - 无论你正在查看 [CHARGE_CODE_TEST] 度量的 [Charege].[Station] 层次结构的哪个成员,它总是会在第一个 [Charege].[Station].&[CA2] 聚合 [Inv Line Amt]情况下,CA1 和 CA2 在第二种情况下。如果您从 Aggregate 函数中删除这些成员,那么它将在当前单元格的上下文中显示数字,就像 [Measures].[Inv Line Amt] 一样。

    在第一种情况下尝试这样的事情:

    CREATE MEMBER CURRENTCUBE.[Measures].[CHARGE_CODE_TEST]
     AS IIf([Charege].[Station].CurrentMember IS [Charege].[Station].&[CA2], ([Charege].[Station].&[CA2],[Measures].[Inv Line Amt]), 0)  , 
    VISIBLE = 1  ; 
    

    而且,如果我理解正确的话,这应该是第二种情况:

        CREATE MEMBER CURRENTCUBE.[Measures].[CHARGE_CODE_TEST]
         AS IIf([Charege].[Station].CurrentMember IS [Charege].[Station].&[CA2]
    OR [Charege].[Station].CurrentMember IS [Charege].[Station].&[CA1], ({[Charege].[Station].&[CA1],[Charege].[Station].&[CA2]},[Measures].[Inv Line Amt]), 0)  , 
        VISIBLE = 1  ; 
    

    【讨论】:

    • 所以应该是这样的!难道我们不能改变这种行为,在第一种情况下只显示 CA2 的值,在第二种情况下拆分 CA1 和 CA2,就像在 DAX 中发生的那样,除非我们使用 ALL。
    • 哦,我想我现在明白了:对于第一种情况,您只想查看 CA2 的值和所有其他成员的 0。
    • 感谢 MDX expession。有没有办法我也可以为第二种情况写这样的东西?
    • 看看编辑后的答案,所以在第二种情况下,它将显示 CA1 和 CA2 成员的总数,否则为 0。
    • 感谢您的第二个表达。我正在寻找一种功能或某种动态方式来执行此操作,因为我有很长的成员列表要过滤。
    猜你喜欢
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    相关资源
    最近更新 更多