MDX - 动态获取过去 6 个月

Shm*_*ski 3 sql-server ssas mdx dimension

我有一个 Dim 表,名为DimAccounts. 它描述了一个用户帐户和该帐户的创建日期。例如:

在此处输入图片说明

我想动态获取过去 6 个月内创建的帐户列表。例如今天是 09\01\2016。所以我的帐户列表将是从01-08-2015直到创建的帐户09-01-2016。请注意,此CreatedOn字段没有层次结构,它是帐户维度的一个属性。

小智 5

假设您已经在维度中正确设置了 CreatedOn 属性的 ValueColumn 属性(以便 MemberValue 返回日期数据类型),那么以下应该起作用:

select {[Measures].[Your Measure Here]} on 0,
[DimAccounts].[AccountPK].[AccountPK].Members on 1
from [Your Cube]
where {
 Filter(
  [DimAccounts].[CreatedOn].[CreatedOn].Members
  ,[DimAccounts].[CreatedOn].CurrentMember.MemberValue > DateAdd("m",-6,Now())
 )
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您想创建一个命名集以便任何用户都可以将其放在行上,请将其放在多维数据集设计器的计算选项卡中:

CREATE SET CurrentCube.[Accounts Created In Last 6 Months]
as
Exists(
 [DimAccounts].[AccountPK].[AccountPK].Members,
 Filter(
  [DimAccounts].[CreatedOn].[CreatedOn].Members
  ,[DimAccounts].[CreatedOn].CurrentMember.MemberValue > DateAdd("m",-6,Now())
 )
);
Run Code Online (Sandbox Code Playgroud)