基于 strtomember 访问以前的成员
Accessing previous member based on strtomember
我创建了一个简单的命名集 [Latest],它使用前一天的日期。这按要求工作,并且可以被引用日期维度的任何度量使用:
CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']');
现在我需要返回一个额外的工作日,并将其显示为单独的计算。
日期维度仅填充业务日期,但也有一个 IsBusinessDay 属性。由于 'Latest' 计算使用 dateadd vba 函数,我不能简单地增加 dateadd 参数,因为日期中存在间隙(对于 holidays/weekends)(尽管我可以选择返回源代码视图并根据需要更改它)。
我能够在使用特定度量时实现创建工作计算,但我希望实现的是拥有一个可与 [=22= 一起使用的命名集计算]任何度量,而不是像这样硬编码到计算中:
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;
我创建了一个简单的命名集 [Latest],它使用前一天的日期。这按要求工作,并且可以被引用日期维度的任何度量使用:
CREATE DYNAMIC SET CURRENTCUBE.[Latest]
AS strtomember('[Date].[Date Key].&['+
vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']');
现在我需要返回一个额外的工作日,并将其显示为单独的计算。
日期维度仅填充业务日期,但也有一个 IsBusinessDay 属性。由于 'Latest' 计算使用 dateadd vba 函数,我不能简单地增加 dateadd 参数,因为日期中存在间隙(对于 holidays/weekends)(尽管我可以选择返回源代码视图并根据需要更改它)。
我能够在使用特定度量时实现创建工作计算,但我希望实现的是拥有一个可与 [=22= 一起使用的命名集计算]任何度量,而不是像这样硬编码到计算中:
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;