Последние 12 месяцев на основе слайсера год-месяц - PullRequest
2 голосов
/ 27 апреля 2020

У меня есть дата среза:

enter image description here

Я пытаюсь вычислить сумму меры Nombre AN между выбранным месяцем и откатом 11 месяцев: например, если пользователь выбирает 2019/09, мне нужно вычислить сумму меры в период с 2018/10 по 2019/09:

Measure =
VAR a =
    SELECTEDVALUE (
        Dim_DateFicheAgent[ID_DateFicheAgent];
        MAX ( Dim_DateFicheAgent[ID_DateFicheAgent] )
    )
RETURN
    CALCULATE (
        [Nombre de AN];
        FILTER (
            ALL ( Fact_AN );
            DATESINPERIOD (
                Dim_DateFicheAgent[ID_DateFicheAgent];
                DATE ( YEAR ( a ); MONTH ( a ); 1 );
                -11;
                MONTH
            )
        )
    )

Я получил ошибку:

Невозможно загрузить данные для этого визуального элемента Мера отчета 'EnteteRapportAgentClient [Measure] имеет синтаксическую или семантическую c ошибку в строке 17, позиция 13, сообщаемую службами Analysis Services: «Ошибка вычисления в мере» EnteteRapportAgentClienffleasure]: таблица из нескольких значений было предоставлено, в то время как «ожидалось одно значение».

enter image description here

Как исправить это?

Редактировать

Я поместил пример здесь

SampleMeasure =
VAR Top = SELECTEDVALUE ( Header[Top] )
VAR Middle = SELECTEDVALUE ( Header[Middle] )
VAR BottomIndex = SELECTEDVALUE ( Header[Index3] )
RETURN
    SWITCH (
        TRUE (),
        Top = "Nombre product", XXXX,
        Top = "Affaires nouvelles" && BottomIndex <> 0, YYYY,
        Middle = "Total", ZZZZZ,
        Middle = "%Total", WWWW
    )

В приведенном выше сценарии я должен заменить сумму XXXX и YYYY (NBAN) между выбранным месяцем и откатом на 11 месяцев и заменить ZZZZ на сумму всех значений для ffaires nouvelles ".

1 Ответ

1 голос
/ 01 мая 2020

Попробуйте это.

MEASURE=

VAR a =

    SELECTEDVALUE(Dim_DateFicheAgent[ID_DateFicheAgent])

  RETURN

    CALCULATE (

        [Nbre];

         DATESBETWEEN (
        Dim_DateFicheAgent[ID_DateFicheAgent];
        NEXTDAY ( SAMEPERIODLASTYEAR (LASTDATE ( Dim_DateFicheAgent[ID_DateFicheAgent] ) ) );
        LASTDATE ( Dim_DateFicheAgent[ID_DateFicheAgent] )
    )
    )
...