【问题标题】:SSAS MDX Previous Year - Ignore FilterSSAS MDX 上一年 - 忽略过滤器
【发布时间】:2020-03-06 13:51:01
【问题描述】:

我试着得到实际营业额和上一年同期的营业额。

我写了这个查询:

with 
member [Measures].[Turnover PrevYear] as 
IIF( IsEmpty([Measures].[Turnover Actual] ), 
    NULL,   
    SUM(      
       (ParallelPeriod( [Date].[Year - Quarter - Month - Date].[Year],1,[Date].[Year - Quarter - Month - Date].CurrentMember))
       ,   [Measures].[Turnover Actual]
       ) 
    )
Select  
non empty{[Measures].[Turnover Actual],[Measures].[Turnover PrevYear]} 
on Columns,
non empty{[Store].[Store].[Store].members}
on Rows
from [Sales Cube]
where (
[Date].[Year - Quarter - Month - Date].[Month].&[2020]&[1], 
[Store Status].[Store Status Type].&[Comparable], 
[Store].[Country].[Country].&[GERMANY]
)

现在我得到以下结果:

商店 |实际营业额 |上年营业额

汉堡 | 100.00 | 120.00

慕尼黑 | 140.00 | 130.00

科隆 | 90.00 | 110.00

柏林 | 150.00 |空

柏林没有前一年的值,因为商店在 2019 年 1 月的状态为“不可比较”。此“商店状态”过滤器不仅适用于实际营业额,也适用于上一年的计算。我如何在计算中忽略此过滤器?无论这家商店在去年是否“不可比”,我都想从去年获得柏林的价值。此过滤器仅针对实际情况,将实际的“不可比较”商店踢出此结果列表。

【问题讨论】:

    标签: ssas mdx mdx-query analysisservices


    【解决方案1】:

    您需要将“默认成员”添加到要忽略上下文的任何计算中。 您的代码将是

    with 
    member [Measures].[Turnover PrevYear] as 
    IIF( IsEmpty([Measures].[Turnover Actual] ), 
        NULL,   
        SUM(      
           ([Store Status].[Store Status Type].defaultmember, ParallelPeriod( [Date].[Year - Quarter - Month - Date].[Year],1,[Date].[Year - Quarter - Month - Date].CurrentMember))
           ,   [Measures].[Turnover Actual]
           ) 
        )
    Select  
    non empty{[Measures].[Turnover Actual],[Measures].[Turnover PrevYear]} 
    on Columns,
    non empty{[Store].[Store].[Store].members}
    on Rows
    from [Sales Cube]
    where (
    [Date].[Year - Quarter - Month - Date].[Month].&[2020]&[1], 
    [Store Status].[Store Status Type].&[Comparable], 
    [Store].[Country].[Country].&[GERMANY]
    )
    

    【讨论】:

    • 感谢@MoazRub 的回答。我尝试了这个版本,现在得到了柏林的价值。这很酷,但我现在有一个新问题。如果我不在商店级别而不是在国家级别运行此查询,我对德国的求和结果是错误的。假设柏林的上一年结果为 100.00。那我给德国的总和应该是 460.00 对吧?我的结果是 580.00。说明:在 2020 年 1 月,还有一个“不来梅”商店,其中一个“不可比”。这家商店的上一年价值为 120.00 。在商店级别,这家商店被过滤掉了。在国家层面,它被包括在内。
    • @Alexo。不客气。我会要求你在帖子上保留一个问题。这将帮助其他面临相同问题的人轻松获得解决方案。另外,下一个问题的解决方案可能会有所不同。所以它会相对隐藏。所以将此标记为已回答。发布您的下一个问题,我也很乐意解决。
    • 好的。我将发布一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 2018-07-25
    • 1970-01-01
    相关资源
    最近更新 更多