【问题标题】:MDX - Retrieve last month of prior year valueMDX - 检索上一年的最后一个月的值
【发布时间】:2021-07-19 19:11:54
【问题描述】:

我的日期层次结构为 Year->Qtr->Month->Day

我正在尝试检索前一年最后一个月(即 2020 年 12 月)的值。基本上,2021 年的所有月份都将与 2020 年 12 月的价值进行比较。

以下内容正是我所需要的,但我不想明确输入 2021 年的成员。我想使用用户正在查看的任何年份。我已经尝试了 currentmember 没有运气,因为我一无所获。

SSAS 计算:

sum(ClosingPeriod ([Calendar].[Time].[Month],[Calendar].[Time].[Year].&[2021].lag(1)),
[Measures].[Compliance Pct])

试过了,没有运气:

sum(ClosingPeriod ([Calendar].[Time].[Month],[Calendar].[Time].[Year].currentmemeber.lag(1)),
[Measures].[Compliance Pct])

【问题讨论】:

    标签: ssas mdx


    【解决方案1】:

    [Calendar].[Time].[Year] 看起来像一个级别,而不是一个层次结构。每个层次结构都有一个CurrentMember,而不是MDX 中的每个级别。为了获得与当前成员 [Calendar].[Time] 的哪个级别无关的当前年份成员,您可以使用

    Ancestor( 
         [Calendar].[Time].CurrentMember,
         [Calendar].[Time].[Year]
    ).lag(1)
    

    而不是

    [Calendar].[Time].[Year].currentmemeber.lag(1)
    

    Ancestor(...) 表达式采用当前成员级别或更高级别的年份级别成员,请参阅the documentation of Ancestor。如果层次结构的当前成员是All 成员,它将不起作用,因为这将在年份之上的级别上,而不是低于或在级别上。但是你的计算无论如何都没有意义。

    顺便说一句,它是currentmember,而不是currentmemeber

    【讨论】:

    • 非常感谢。像魅力一样工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2021-12-24
    • 2019-05-03
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    相关资源
    最近更新 更多