#iccube
#iccube
Вопрос:
У нас есть схема, в которой мы показываем последние два месяца ежедневно и последние два года ежемесячно.
Чтобы избавиться от дней в измерении даты, мы удаляем их в перспективе.
Удаление непосредственно в измерении, к сожалению, не работает, поскольку нам пришлось бы указать там конкретную дату (например, 2020-10-01) вместо «два месяца назад». И тогда нам пришлось бы менять его каждый месяц вручную.
В любом случае, все это работает хорошо, пока мы не используем для наших мер расширенный тип агрегации (например, Close). Как только мы это сделаем, мы получим сообщение об ошибке, если мы хотим видеть эту меру ежемесячно более двух месяцев назад (ежедневные значения не найдены, поэтому последнее значение за день, очевидно, не может быть найдено).
С сентября 2020 года оператор завершается ошибкой:
С октября 2020 года утверждение выполняется успешно:
Каков наилучший способ использовать эти сложные типы агрегации с неполными временными измерениями?
Ответ №1:
Может быть, вы можете извлечь выгоду из этого решения. Я добиваюсь чего-то «похожего» для своих клиентов:
- создайте набор с требуемыми периодами (на основе определений многомерных выражений)
- используйте этот набор в качестве основного ЛОВА на главной панели мониторинга (в сочетании со встроенным отчетом)
- отключите иерархию ДАТ из приложения
Например:
create set [periods] as
filter( [Time].[Time].[month].members,[time].[time].currentmember.properties('key', typed) > _today()->withDayOfMonth(1)->minusMonths(2))
filter( [Time].[Time].[quarter].members,[time].[time].currentmember.properties('key', typed) > _today()->withDayOfMonth(1)->minusMonths(24))
Живой пример (с разными динамическими периодами):
(1) = основной LOV, с загруженным прошлым годом, годом ранее, за последние 12 месяцев, за последние 24 месяца, за последние 4 года, (2) LOV для подробных отчетов в виде вкладок, (3) встроенный отчет
Комментарии:
1. Возможно, я что-то не правильно понял, но когда я попробовал ваше решение, этот набор не удалял элементы месяца под элементами квартала, а просто показывал сначала последние два месяца, а затем кварталы за последние два года и месяцы за последние два года снова под кварталами.
2. Это работает, только если вы используете набор в фильтре многомерных выражений, предоставляя плоский список для выбора. В моем тестовом примере для этого набора я получаю (при установке _today() на 25/12/2020: 2020Nov, 2020Dec, 2019q1, 2019q2 … 2020q4.
Ответ №2:
Я нашел решение для этого варианта использования:
Я добавил новую иерархию «день» в измерение даты и использовал эту новую иерархию с единственной целью свертки иерархии этих мер. Эта иерархия не будет фильтроваться, следовательно, не будет пропущенных дней, но она также не будет использоваться для отображения в отчете. Таким образом, пользователь будет видеть только отфильтрованную иерархию, и все же правильное число будет отображаться на уровне месяца.