Последний МПД, когда нет параллельного периода

Мне нужна мера Last MTD. Следующее решение работает хорошо, за исключением случаев, когда в текущем месяце 31 день, а в предыдущем 30 - мера возвращает NULL. Я хочу получить сумму за весь последний месяц вместо NULL. Как это реализовать изящно?

([Dim Date Tool].[Date Tool Name].[Last MTD]) 
= Aggregate
(
    {[Dim Date Tool].[Date Tool Name].DefaultMember} *
    PeriodsToDate
    (
        [Dim Date].[Calendar YQMD].[Month],
        ParallelPeriod
        (
            [Dim Date].[Calendar YQMD].Month,
            1,
            [Dim Date].[Calendar YQMD].CurrentMember
        )
    )
);  

Возможно, но немного сложное решение

    ([Dim Date Tool].[Date Tool Name].[Last MTD]) 
= Aggregate
(
    {[Dim Date Tool].[Date Tool Name].DefaultMember} *
    PeriodsToDate
    (
        [Dim Date].[Calendar YQMD].[Month],
        IIF
        (
            ISEMPTY(ParallelPeriod([Dim Date].[Calendar YQMD].Month, 1, [Dim Date].[Calendar YQMD].CurrentMember)), 
            Tail(Descendants(Ancestor([Dim Date].[Calendar YQMD].CurrentMember, [Dim Date].[Calendar YQMD].Month).PrevMember, [Dim Date].[Calendar YQMD].[Date], SELF), 1).Item(0), 
            ParallelPeriod([Dim Date].[Calendar YQMD].Month, 1, [Dim Date].[Calendar YQMD].CurrentMember)
        )
    )
);  

0 ответов

Другие вопросы по тегам