Ssas 基于strotmember访问以前的成员

Ssas 基于strotmember访问以前的成员,ssas,mdx,Ssas,Mdx,我创建了一个简单的命名集[Latest],它使用前一天的日期。这是根据需要工作的,可用于任何引用日期维度的度量: CREATE DYNAMIC SET CURRENTCUBE.[Latest] AS strtomember('[Date].[Date Key].&['+ vba!Format(DateAdd('d',-1,Now()),'yyyyMMdd')+']'); 现在我需要返回一个额外的工作日,并将其显示为单独的计算 日期维度仅填充业务日期,但还具有IsBusinessDa

我创建了一个简单的命名集[Latest],它使用前一天的日期。这是根据需要工作的,可用于任何引用日期维度的度量:

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] 
    ) ;

非常感谢您的任何建议或建议。

据我所知,您的约会维度中只有商务日。因此,对于日期维度中的任何成员,Prevmember将获得最后一个日期的前一天。如果是这种情况,您的初始命名集将进行轻微更改

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

谢谢-真不敢相信我在另一个计算中使用了prevmember之后错过了它。@Blackmoor,伙计。这可能是因为您忽略了一个事实,即您的初始代码本身就是一个成员。