#mdx
#многомерные выражения
Вопрос:
Простой куб имеет 1 меру и три временных измерения:
- [Меры].[Выплаченная сумма]
- [Дата оплаты]
- [Дата начала обложки]
- [Дата окончания обложки]
Заработанная премия = 0%, если дата начала покрытия предшествует рассматриваемому периоду 100%, если дата окончания покрытия прошла еще [Конец покрытия — начало покрытия] * Дни с начала
Для любой заданной ячейки, как мне просмотреть все даты начала и окончания и определить, какова сумма, заработанная за период?
Комментарии:
1. Марк, какой OLAP-сервер вы используете? .. проблема здесь в том, как преобразовать вашу премию во что-то, что можно агрегировать с течением времени.
Ответ №1:
Я предполагаю, что отсутствует другое измерение, например, такое, как [ContractID] , если нет, то, что следует после, не имеет реального смысла.
Проблема здесь в том, что ваша фактическая мера, заработанная премия, представляет собой функцию (выплаченная сумма, дата начала покрытия, дата окончания покрытия, дата) и это для каждой сделки. Вы не можете агрегировать по набору сделок сразу, поскольку функция не является ассоциативной — или что-то вроде этого :-).
Поэтому я бы добавлял в свой куб премию за каждую сделку за период [Дата начала покрытия], [Дата окончания покрытия] с ежедневной премией за этот контракт. Получив это, вы можете легко агрегировать эту меру по своим измерениям. -> Теперь ежедневная премия больше не зависит от даты покрытия..
Многомерные выражения не являются реальной вычислительной машиной, поэтому вы выводите систему за ее пределы. Решая это с помощью областей, вычисленные меры могут привести к удивительно медленному кубу…