MDX Full去年(不是迄今为止)

时间:2011-12-08 10:37:42

标签: ssas mdx

我将它用于LastYTD

ROUND(
    SUM(YTD(ParallelPeriod([Invoice Date].[Date Hierarchy].[Year]
        , 1
        , [Invoice Date].[Date Hierarchy].CurrentMember))
        , [Measures].[Revenue]
    ),
    2
)

现在我需要去年,而不是YTD。怎么做?

更新

II尝试过以下但仅在年级显示结果。

ROUND(
    SUM(YTD(ParallelPeriod([Invoice Date].[Date Hierarchy].[Year]
        , 1
        , ClosingPeriod([Invoice Date].[Date Hierarchy].[Year],
            [Invoice Date].[Date Hierarchy].CurrentMember)
        )
        )
        , [Measures].[Revenue]
    ),
    2
)

SCREENSHOT
enter image description here

查询2:

ROUND(
    SUM(ParallelPeriod([Invoice Date].[Date Hierarchy].[Year]
        , 1
        , [Invoice Date].[Date Hierarchy].CurrentMember)
        , [Measures].[Revenue]
    ),
    2
)

结果:

enter image description here

UPDATE3:

这就是我需要的: enter image description here

2 个答案:

答案 0 :(得分:1)

ROUND(
    SUM(ParallelPeriod([Invoice Date].[Date Hierarchy].[Year]
        , 1
        , [Invoice Date].[Date Hierarchy].CurrentMember)
        , [Measures].[Revenue]
    ),
    2
)

我刚从表达式中删除了YTD函数。在我的数据库中,这个表达式工作正常,除了我们在日期维度上有一些空白的情况(例如:2009年,2011年成员存在于级别年份,但不存在于2010年成员)。

/ <强> * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** /

更新版本: (通过评论:本年度的所有成员必须包含前一年的价值)

(
   ClosingPeriod(
         [Invoice Date].[Date Hierarchy].[Year]
        ,[Invoice Date].[Date Hierarchy].CurrentMember
   ).lag(1)
   , [Measures].[Revenue]
)

P.S。此表达式尚未经过测试。

答案 1 :(得分:1)

我能够通过2次计算

完成此操作
CREATE MEMBER CURRENTCUBE.[MEASURES].[Revenue FY]
AS SUM((ANCESTOR([Date].[Y-Q-M-D].Currentmember, [Date].[Y-Q-M-D].[Year])), [Measures].[Revenue]), 
FORMAT_STRING = "#,#", 
VISIBLE = 1  ; 
CREATE MEMBER CURRENTCUBE.[MEASURES].[Revenue FY LY]
AS (PARALLELPERIOD( [Date].[Y-Q-M-D].[Year], 1,[Date].[Y-Q-M-D] ),[Measures].[Revenue FY]), 
FORMAT_STRING = "#,#", 

我希望这可以帮到你。