В моем измерении даты у меня есть 2 иерархии:
[Год - неделя - Дата] и [Год - Месяц - Дата]
Я хочу проверить в вычислении куба, является ли текущий уровень измерения даты [Дата] (самый низкий уровень) или что-то более высокое.
Как мне этого добиться?
Справочная информация: Мне нужно это, чтобы рассчитать, сколько рабочих дней было в периоде для сотрудника.В настоящее время у меня есть этот код (непроверенный), который должен выполнить трюк для 1 иерархии, но я предполагаю, что это не удастся, если пользователи используют иерархию [Год - Неделя - Дата].
CASE WHEN
[Date].[Year - Month - Date].CURRENTMEMBER.Level
IS
[Date].[Year - Month - Date].[Date]
THEN
//at day level,
//if there is any duration booked, this is a working day
IIF([Measures].[Duration] = 0,0,1)
ELSE
//at higher than day level,
//count days
COUNT(
// where duration > 0 (employee work day)
FILTER(
Descendants([Date].[Year - Month - Date].CURRENTMEMBER, [Date].[Year - Month - Date].[Date]),
[Measures].[Duration] > 0
)
)
END
tl; dr как сделать так, чтобы вышеуказанный код также работал для иерархии [Год - Неделя - Дата] самым чистым способом.