Ssas MDX计算。Filetring基于另一列中的值的度量值

Ssas MDX计算。Filetring基于另一列中的值的度量值,ssas,mdx,Ssas,Mdx,我发现我遇到的问题本质上是“根据同一事实表中某列的值过滤一个事实表度量” 我有一个称为Report的多维数据集“调用”和“失败”是此度量的列。有一个维度叫做“试用”。我必须在SSAS多维数据集中编写一些新的计算 仅当失败=1且[Trial categories].[Trail].&[1]的值为[measure].[calls]时,求和([measure].[calls])  我无法使用过滤器获得所需的结果。因此,我在事实数据表中创建了一个新列“calls\u if\u failure”=“

我发现我遇到的问题本质上是“根据同一事实表中某列的值过滤一个事实表度量”

我有一个称为Report的多维数据集“调用”和“失败”是此度量的列。有一个维度叫做“试用”。我必须在SSAS多维数据集中编写一些新的计算

  • 仅当失败=1且[Trial categories].[Trail].&[1]的值为[measure].[calls]时,求和([measure].[calls])
  •  我无法使用过滤器获得所需的结果。因此,我在事实数据表中创建了一个新列“calls\u if\u failure”=“calls”或0,具体取决于failure列的值。  然后在计算列中,我使用sum([calls_if_failure]、[Trial categories]、[Trail]和[1])。这是唯一的办法吗

  • 现在我对大自然有了更多的要求-> 仅当[measure].[visit]=1时,求和([measure].[calls]) 我是否应该采取与以前相同的方法来达成解决方案?如果是,则这意味着事实表中有更多的列

  • 谢谢你的帮助。谢谢。

    努力理解这个问题,但也许以下内容至少能帮助你了解一些想法:

    SUM ( 
      IIF (
         [Trial categories].CURRENTMEMBER IS [Trial categories].[Trail].&[1]
     , [measure].[calls]
     , NULL
    )
    )