Я хочу получить сумму данных за каждую неделю предыдущего года, с этим условием, что даты должны начинаться с 1 октября, а количество дней в этих неделях должно быть одинаковым. Единственная проблема, с которой я столкнулся, это первая неделя октября.
Когда я делаю lag(364)
по дням, я получу точный день предыдущего года, и это нормально. Но когда я использую lag(52)
по неделям, я получу различное количество дней
Знаете ли вы, как правильно написать mdx, чтобы получить агрегированную сумму в неделю только для связанных дней (текущий день - 364 дня)?
Значения в кубе:
2018-10-01 100
2018-10-02 200
2018-10-03 300
2018-10-04 400
2018-10-05 500
2018-10-06 600
Что я получаю от mdx:
Days (related days) lag(364) on days lag(52) on weeks
2019-10-01 (2018-10-02 ) 200 2100
2019-10-02 (2018-10-03 ) 300 2100
2019-10-03 (2018-10-04 ) 400 2100
2019-10-04 (2018-10-05 ) 500 2100
2019-10-05 (2018-10-06 ) 600 2100
И я ожидаю, что на эту агрегированную сумму будет только 2000 (безпервый день)
Мой MDX:
WITH
MEMBER [Measures].[Sales LastYear by Day] AS
Sum ( Ancestor (
[Calendar].[CAL Additional].CurrentMember
,[Calendar].[CAL Additional].[Op Day]
).Lag(364)
,[Measures].[Sales]
)
MEMBER [Measures].[Sales LastYear by Week] AS
Sum ( Ancestor (
[Calendar].[CAL Additional].CurrentMember
,[Calendar].[CAL Additional].[Op Week]
).Lag(52)
,[Measures].[Sales]
)
SELECT
NON EMPTY {
[Measures].[Sales LastYear by Day],
[Measures].[Sales LastYear by Week]
} ON COLUMNS
,NON EMPTY {
[Calendar].[Op Day].[Op Day].ALLMEMBERS
} ON ROWS
FROM [MyCube]