MDX: вернуть последнее значение для выбранных элементов в Power BI - PullRequest
0 голосов
/ 20 ноября 2018

Это вопрос, касающийся кубов SSAS, формул MDX и Power BI.

У меня есть показатель с активными участниками за каждый месяц.Поэтому, когда я выбираю, например, 2018, он должен не агрегировать, а возвращать последний доступный месяц с активными членами, а если я разбиваю по месяцам, он должен давать активных членов за каждый месяц.

Итак, у меня есть эта формулакоторый работает почти нормально, если запрашивать в MS Management Studio:

with member [Measures].[Last existing SOCIOS] AS 
Max(
EXISTING [DIM FECHA].[Jerarquía].[MES NOMBRE].members,
iif([Measures].[ACTIVOS] = 0,null,
[Measures].[ACTIVOS])
)

 select {[Measures].[Last existing SOCIOS]} on columns,
[DIM FECHA].[MES NOMBRE].members on rows
from [cubo_Compromisos]
where [DIM FECHA].[AÑO].&[2018]

enter image description here

Я бы предпочел, чтобы значение ноября возвращалось на уровне «Все»,Но это не моя главная проблема.Реальная проблема заключается в том, что когда я использую этот показатель в Power BI, он ведет себя по-другому: при выборе нескольких месяцев он игнорирует выбранные значения и просто возвращает последнее значение за весь год.

На скриншоте ниже я добавилзначение, возвращаемое картой KPI, потому что это значение, которое я хочу вернуть:

enter image description here

Если я выбираю такие элементы, то это правильно, ноМне нужно, чтобы он выбрал все месяцы, а не только один, потому что я использую этот показатель вместе с другими:

enter image description here

Кто-нибудь знает правильную функцию MDX дляиспользовать или альтернативу?

Отредактировано: 23-11-2018

То же самое происходит в сводной таблице, подключенной к кубу SSAS. Когда я добавляю измерение даты в таблицу, оно работает нормально,Но при использовании измерения даты и его фильтрации без добавления измерения в виде строк возвращается значение за весь год.

enter image description here

1 Ответ

0 голосов
/ 20 ноября 2018

Функция, которую вы смотрите - LastChild.Last Child на верхнем уровне иерархии вернет значение, на которое вы смотрите.

Я думаю, что эту функцию можно использовать в проекте Cube в SSAS - тогда это будет стандартное поведение.Если вы хотите сделать это с запросом, вам нужно сделать что-то вроде:

SELECT [Дата]. [Фискальный]. [Фискальный квартал]. [Q1 FY 2002] .LastChild ON 0
FROM [Adventure Works]

Чтобы получить последний месяц 1-го квартала (я использовал пример от microsoft и еще один пост по теме)

...