在DATE维度上使用ANCESTOR函数

时间:2013-07-05 12:58:22

标签: ssas mdx

这是我的剧本:

WITH MEMBER [Date].[Date - Calendar Month].[2MthPrev] AS
    (
    ANCESTOR(
        CLOSINGPERIOD([Date].[Date - Calendar Month].[Calendar Month]),
        2
    ))
SELECT  
    NON EMPTY 
    {
        [Date].[Date - Calendar Month].[2MthPrev]
    }
    ON ROWS,
    NON EMPTY
        [Measures].[Revenue]
    ON COLUMNS
FROM [OurCube] 

查询运行时没有错误,但结果窗格为空。

我尝试在层次结构级别[Date - Calendar Month]中的上个月前两个月的[Calendar Month]层次结构中创建自定义成员。因此,如果多维数据集中最后一个加载的月份是2013年7月,那么我希望[2MthPrev]将显示2013年5月的结果。

我认为问题在于自定义成员[2MthPrev]及其对ANCESTOR的使用 - 这是如何解决的?

2 个答案:

答案 0 :(得分:2)

不确定理解查询,但假设[日历月]最多有2个级别(全部+几个月),我猜你要求的是:

[a-month].parent.parent = [all].parent = null

[2MthPrev]是标量值而不是成员;如果你想调试到像:

with [2MthPrev] as ancestor( ... ).uniqueName

希望有所帮助。

答案 1 :(得分:2)

此查询返回给定度量值组的上一个填充日期之前2个月。您可能不得不使用它来制作计算成员。 tail中的第二个参数是可选的。如果不包含它,则默认值为1.

所以我将返回该项目的第一项(项目(0))之前的2项,其中包括该月份中有值的最后一个月(尾部)。度量组(存在子句)。

select {Tail(Exists([Date].[Date - Calendar Month].[Calendar Month].members, , "Measure Group Name")).Item(0).lag(2)} on 0
 from [OurCube]