Доступ к предыдущему члену на основе strtomember - PullRequest
1 голос
/ 29 мая 2019

Я создал простой именованный набор [Последний], который использует дату предыдущего дня. Это работает как требуется и может использоваться любыми мерами, которые ссылаются на измерение даты:

CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+ 
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']'); 

Теперь у меня есть требование вернуться на дополнительный рабочий день и отобразить его как отдельный расчет.

Измерение даты заполняется только бизнес-датами, но также имеет атрибут IsBusinessDay. Поскольку в последнем вычислении используется функция dateadd vba, я не могу просто увеличить параметр dateadd, поскольку в датах (для праздников / выходных) есть пробелы (хотя у меня есть возможность вернуться к исходному виду и изменить это при необходимости).

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

CREATE MEMBER [TwoDaysBack] AS
( 
      [Date].[Date Key].currentmember.prevmember, 
      [Measures].[PL] 
    ) ;

Любые предложения или указатели очень ценятся.

1 Ответ

1 голос
/ 30 мая 2019

Насколько я понимаю, у вас просто есть деловые дни в вашем измерении Даты. Таким образом, для любого члена в вашем измерении даты Prevmember получит день, предшествующий последней дате. В этом случае ваш начальный именованный набор будет работать с небольшим изменением.

CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+ 
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']').prevmember; 
...