мой предыдущий вопрос для SSAS MDX в предыдущем году - фильтр игнорирования был решен. Теперь у меня есть другая проблема. Теперь я получаю правильный результат предыдущего года для магазина, но агрегация на уровне страны неверна.
Моя проблема заключалась в том, что я не получил значение предыдущего года для магазина, потому что фильтр выбил это значение:
Магазин | Актуальный оборот | Оборот PrevYear
Гамбург | 100,00 | 120,00
Мюнхен | 140,00 | 130,00
Кельн | 90,00 | 110,00
Берлин | 150,00 | null
Я попытался выполнить этот запрос из MoazRub:
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]
)
Я получил правильный результат на уровне магазина:
Store | Актуальный оборот | Оборот PrevYear
Гамбург | 100,00 | 120,00
Мюнхен | 140,00 | 130,00
Кельн | 90,00 | 110,00
Берлин | 150,00 | 120,00
На уровне страны я получаю неправильную сумму, потому что теперь в магазине включен другой магазин "Бремен", который "несопоставим" в январе 2020 года.
ВСЕГО должно быть (без Бремена, который является "Несопоставимым": 460,00
ИТОГО "является ситуацией": 580,00 (включая Бремен)
Запрос на уровне страны:
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].[Country].[Country].&[GERMANY]}
on Rows
from [Sales Cube]
where (
[Date].[Year - Quarter - Month - Date].[Month].&[2020]&[1],
[Store Status].[Store Status Type].&[Comparable]
)
Как я могу суммировать на уровне страны только сопоставимые магазины?