mdx получить меры для диапазона дат между startDate и endDate

Мне нужно знать, какова скорость бронирования кроватей (например, в отеле).

Количество коек (суммарный месяц за месяц) для диапазона дат, для бронирований, которые находятся в диапазоне (включая частичную сумму бронирований для дат, которые частично находятся в диапазоне)

Я создал таблицу фактов «бронирования» с StartDate и EndDate с мерой «countSejoursDate» (количество (строк)) и мерой «NbrOfBeds» (сумма). Я создал 2 измерения «времени мастера», связанные следующим образом: введите здесь описание изображения

Я также создал третье измерение «волшебного времени» под названием «Дата», не связанное с каким-либо фактом.

Пытаясь получить результат, используя MDX ниже, я просто могу получить количество строк в диапазоне дат... но даже при этом значение 1-го дня каждого месяца ложно!

with member nbsejsDate as AGGREGATE( 
          {NULL:LINKMEMBER([Date].[Calendrier].CURRENTMEMBER,[START_DATE].[Start_Calendrier])}
        * {LINKMEMBER([DATE].[Calendrier].CURRENTMEMBER, [END_DATE].[End_Calendrier]):NULL}
        , [Measures].[countSejoursDate])
select nbsejsDate
on 0 
, [Date].[Calendrier].[Jour].&[2015-03-01]:[Date].[Calendrier].[Jour].&[2015-03-31] on 1
from [Cube]

person Bertrand Miot    schedule 01.04.2016    source источник


Ответы (1)


Это немного странно, поскольку здесь мы имеем отношение «многие ко многим» в форме даты начала и окончания. Попытка сделать правильный расчет, опираясь на расчет многомерных выражений вместо использования отношения «многие ко многим», сложна и очень, очень подвержена ошибкам.

Возможны разные варианты решения:

  • Используйте тип ссылки «Диапазон (от — до)» в ссылке измерения времени в фактах.

  • Используйте представление Javascript для создания нового столбца, представляющего собой массив дат (начало/конец). Отношение «многие ко многим» создается «на лету».

Это должно значительно облегчить любые вычисления, если я правильно понял задачу.

Надеюсь, поможет

person ic3    schedule 04.04.2016
comment
ваш сервер olap свободен? будет ли он работать против DWH AdvWrks на 16-гигабайтном ноутбуке? смогу ли я поиграть со стандартным mdx, используя этот ноутбук, или мне нужно будет купить ваш внешний интерфейс? - person whytheq; 05.04.2016
comment
У нас есть ограниченная версия для сообщества, но наш продукт не бесплатный. Для этого размера вам придется купить версию Enterprise - person ic3; 05.04.2016
comment
позор - я просто хочу дешевый способ играть с mdx против AdvWrks, когда я дома... есть ли способ? - person whytheq; 05.04.2016