1

这是我的脚本:

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]层次结构的上个月的 level 早两个月[Calendar Month]。因此,如果立方体中最后加载的月份是 2013 年 7 月,那么我希望这[2MthPrev]会显示 2013 年 5 月的结果。

我相信问题出在自定义成员[2MthPrev]及其用途上ANCESTOR——这是如何解决的?

4

2 回答 2

2

不确定是否理解查询,但假设 [Calendar Month] 最多有 2 个级别(ALL + 月),我猜您要求的是:

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

[2MthPrev] 是标量值而不是成员;如果您想调试某事,例如:

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

希望有帮助。

于 2013-07-08T22:29:53.643 回答
2

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

因此,我将返回 2 之前的项目(滞后)该集合的第一个项目(Item(0)),其中包括测量组中有值的月份集合中的最后一个月(尾)(存在子句)。

select {Tail(Exists([Date].[Date - Calendar Month].[Calendar Month].members, , "Measure Group Name")).Item(0).lag(2)} on 0
 from [OurCube]
于 2013-07-09T16:21:34.593 回答