SSAS MDX 上一年 - 忽略过滤器
SSAS MDX Previous Year - Ignore Filter
我试着得到实际营业额和上一年同期的营业额。
我写了这个查询:
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 |空
Berlin 没有上一年的值,因为该商店在 2019 年 1 月的状态为 "Not Comparable"。此 "Store Status" 过滤器不仅适用于实际营业额,也适用于上一年的计算。我怎样才能在计算中忽略这个过滤器?无论商店在去年是 "Not comparable",我都想从上一年获得柏林的价值。此过滤器仅针对实际情况将实际 "Not comparable" 商店踢出此结果列表。
您需要将 "default member" 添加到您想要忽略上下文的任何计算中。
您的代码将是
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]
)
我试着得到实际营业额和上一年同期的营业额。
我写了这个查询:
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 |空
Berlin 没有上一年的值,因为该商店在 2019 年 1 月的状态为 "Not Comparable"。此 "Store Status" 过滤器不仅适用于实际营业额,也适用于上一年的计算。我怎样才能在计算中忽略这个过滤器?无论商店在去年是 "Not comparable",我都想从上一年获得柏林的价值。此过滤器仅针对实际情况将实际 "Not comparable" 商店踢出此结果列表。
您需要将 "default member" 添加到您想要忽略上下文的任何计算中。 您的代码将是
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]
)