我正在尝试创建一个动态命名集,可以使用日期维度对数据进行切片。我希望有几个命名集,如最后一天,过去7天,上个月,上个季度等等。对于"最后一天"命名集,我正在考虑做类似的事情。
StrToMember("[Date].[Calendar].[Day].&[" + DateAdd("d", -1,Tail( [Date].[Calendar].[Day], 1) + "]")
我希望DateAdd("d", -1, Tail( [Date].[Calendar].[Day], 1) + "]")
返回member_value,以便我可以构建uniquename字符串以返回成员,是否可能?
我使用DateAdd
的原因是,有时我的日期级别数据存在差距,因此使用previousmember有时会返回错误的数据。
Ps:我在最后一天的意思实际上并不等于函数Now()-1
,它是多维数据集中可用的最后一天,这就是为什么我不能依靠服务器系统时间来实现这一点
答案 0 :(得分:0)
希望能给你最后一天:
WITH
MEMBER [Date].[Calendar].[LastDay] AS
Tail([Date].[Calendar].[Day]).ITEM(0).ITEM(0)
SET [VariousDates] AS
{[Date].[Calendar].[LastDay]}
SELECT
[VariousDates] ON 0
FROM [MyCube]
然后,您可以在集[VariousDates]
中创建更多成员:
WITH
MEMBER [Date].[Calendar].[LastDay] AS
Tail([Date].[Calendar].[Day]).ITEM(0).ITEM(0)
MEMBER [Date].[Calendar].[Last7Days] AS
AGGREGATE(
Tail(
[Date].[Calendar].[Day]
,7
)
)
SET [VariousDates] AS
{
[Date].[Calendar].[LastDay]
,[Date].[Calendar].[Last7Days]
}
SELECT
[VariousDates] ON 0
FROM [MyCube]
(以上未经测试但希望有所帮助)