Я создал простой именованный набор [Latest], который использует дату предыдущего дня. Это работает по мере необходимости и может использоваться любыми мерами, которые ссылаются на измерение даты:
CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']');
Теперь у меня есть требование вернуться на дополнительный рабочий день и отобразить это как отдельный расчет.
Измерение даты заполняется только рабочими датами, но также имеет атрибут IsBusinessDay. Поскольку в расчете «Последний» используется функция vba dateadd, я не могу просто увеличить параметр dateadd, так как в датах есть пробелы (для праздников/выходных) (хотя у меня есть возможность вернуться к исходному представлению и изменить это при необходимости).
Мне удалось создать рабочий расчет при использовании определенной меры, но я хочу добиться расчета с одним именованным набором, который можно использовать с любая мера, а не жестко закодированного в вычислении, как это:
CREATE MEMBER [TwoDaysBack] AS
(
[Date].[Date Key].currentmember.prevmember,
[Measures].[PL]
) ;
Любое предложение или указатели с благодарностью.
Насколько я понимаю, у вас есть только рабочие дни в вашем измерении даты. Таким образом, для любого члена в вашем измерении даты Prevmember получит день до последней даты. В этом случае ваш первоначальный именованный набор будет работать с небольшими изменениями.
CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']').prevmember;
@Blackmoor, такое случается, чувак. Это может быть связано с тем, что вы упустили из виду тот факт, что ваш первоначальный код был членом сам по себе.
спасибо - не могу поверить, что я пропустил это после использования prevmember в другом расчете.