上个月的 ssas mdx 查询

ssas mdx query for previous previous month

我目前正在构建一个 ssas 多维数据集。我需要默认值来及时带回 2 个周期。上个月和上个月。

上个月我使用

tail(nonempty([service date].[quarter no - month no].members)) 

效果很好,但是我正在努力解决这个问题的前一个月。

有人可以帮忙吗?谢谢。

更新:

我在 SSAS 中使用这个 mdx 作为计算,然后用作 ssrs 中数据集的过滤器。

我目前的结果是:

Contract Name   Question      TblFct     Month    Year
-------------    -------      ------     -----    ---
New Homes       How Many      600        Dec      2014

这是最后一个月有数据的数字,即 2014 年 12 月。我的目标是让另一个数据集自动按相同的标准过滤,而不是最后一个非空月份,我正在寻找前一个月。我看过滞后函数,但由于某种原因没能坚持下去。

我的比较数据集应该产生:

Contract Name   Question      TblFct     Month    Year
-------------    -------      ------     -----    ---
New Homes       How Many      450        Nov      2014

最快的解决办法是在TAIL之前使用HEAD函数,但这只有在这段时间非空值的情况下才可以接受:

head(tail(nonempty([service date].[quarter no - month no].members),2),1)

但实际上,如果您让用户有机会使用此类过滤器在进一步的 SSRS 报告中按某些维度过滤数据,那么即使您上个月的第一个解决方案也可能会失败。至于我以前的经验,最好将月份的参数'Last'设置为附加column/property,然后:作为当前[服务日期]维度的附加维度层次结构。

如果是完全动态的行为(当上个月的报告与报告不同时),请指定上个月可接受的行为。月份为空:

  1. 我们需要显示 empty/zero 值
  2. 我们需要取之前的非空成员(上面是这样实现的)