MDX iif小于日期属性

时间:2016-07-26 19:48:40

标签: date range mdx iif

我是mdx的首发,并且遵循MDX声明。我想计算一个新成员,它显示我所有的日期少于例如今天作为“Backlog”,其余应显示为“打开”。以下查询工作到目前为止,但在某些日期范围内,我变为“Backlog”而不是“Open”,反之亦然。现在日期= 7/26/2016

MEMBER [Measures].[Backlog] as 
   iif([11 Time].[Year-Quarter-Month-Date].currentmember.properties("Key0") < (StrToMember('[11 Time].[Year-Quarter-Month-Date].[Date].&['+Format(Now(),"yyyy-MM-ddT00:00:00")+']')).properties("Key0")
      , "Backlog"
      ,"Open")

例如,它显示我将7/3/2016 - 2016年7月9日的范围视为“开放”,尽管它应该是“Backlog”,因为它不到2016年6月26日。

6/26/2015   Backlog
6/27/2015   Backlog
6/28/2015   Backlog
6/29/2015   Backlog
6/30/2015   Backlog
7/1/2015    Backlog
7/2/2015    Backlog
7/3/2015    Open
7/4/2015    Open
7/5/2015    Open
7/6/2015    Open
7/7/2015    Open
7/8/2015    Open
7/9/2015    Open
7/10/2015   Backlog
7/11/2015   Backlog
7/12/2015   Backlog
7/13/2015   Backlog
7/14/2015   Backlog

有人可以帮助我吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

不是解决方案,而是尝试诊断正在发生的事情的方法是添加一些临时措施来检查代码的各个方面是否按预期运行:

MEMBER [Measures].[currMem] as 
      [11 Time].[Year-Quarter-Month-Date].currentmember.properties("Key0") 
MEMBER [Measures].[currMem2] AS
      StrToMember('[11 Time].[Year-Quarter-Month-Date].[Date].&['+Format(Now(),"yyyy-MM-ddT00:00:00")+']')).properties("Key0")

现在将这两列返回到结果中以检查它们是否正常。