如何使用带时间维度的 Case 语句在 SSAS 中为计算成员编写 MDX 查询

How to write a MDX query in SSAS for a calculated member using Case statement with Time Dimension

我有一个使用此公式计算的成员:

CASE
  WHEN SUM([Time].[Year].currentmember ,[Measures].[Amount]) > 0 
    THEN 0
  ELSE 1
END

这个计算成员按我的意愿工作,但是当我拉出一个像名称这样的维度成员时,即使在通过了年份的过滤器之后,当我通过这个计算成员时,它也会拉出所有年份的数据。

例如,如果我有 2000-2010 年的数据,那么当我将过滤器作为 2007 年通过时,该成员将提取所有年份的数据,显示空白值。一旦我删除了这个计算成员,它就可以正常工作,它只显示 2007 年的数据。我知道我在 MDX 中搞砸了,请帮助我,谢谢

我认为您的答案基本正确,但您需要将 0 换成 null

CASE
  WHEN SUM([Time].[Year].currentmember ,[Measures].[Amount]) > 0 THEN 1
  WHEN SUM([Time].[Year].currentmember ,[Measures].[Amount]) < 0 THEN 0
  ELSE   
    NULL  
END