当前数据成员减去 mdx 查询中的月份
Current data member minus months on mdx query
我正在尝试执行一个查询,计算一段时间内指定时间范围内的度量总和。
WITH MEMBER
[Measures].[calc] as
SUM (
{ [date.time].[day].CurrentMember.LEAD(-30):[date.time].[day].CurrentMember },
[Measures].[my_value]
)
SELECT NON EMPTY {[Measures].[calc]} ON COLUMNS,
{[date.time].[day].[2014-07-21 00:00:00.0]:[date.time].[day].[2016-07-21 00:00:00.0]} ON ROWS
FROM [my_cube]
此代码有效,它 return 对我来说是当前成员加上它之前的最后 30 个成员的总和,但我正在寻找一种方法来减去成员(在这种情况下为天数),几个月,因为不是所有的月份都有 30 天,有什么办法可以做到这一点?因为如果没有,我的间隔的每一天都需要做一个请求来做我在 java 代码
中想做的事情
如果您的层次结构具有日-月关系(例如,日历),则可以使用日期的父级:
WITH MEMBER
[Measures].[calc] as
SUM (
{ [date.time].[calendar].CurrentMember.LEAD(-30):[date.time].[calendar].CurrentMember },
([date.time].[calendar].CurrentMember.Parent.Lag(1),[Measures].[my_value])
)
SELECT NON EMPTY {[Measures].[calc]} ON COLUMNS,
{[date.time].[day].[2014-07-21 00:00:00.0]:[date.time].[day].[2016-07-21 00:00:00.0]} ON ROWS
FROM [my_cube]
如果没有层级,可以使用day key重新生成month key:
WITH MEMBER
[Measures].[calc] as
SUM (
{ [date.time].[day].CurrentMember.LEAD(-30):[date.time].[day].CurrentMember },
(StrToMember('[date.time].[month].[' + left([date.time].[day].CurrentMember.Properties('Key'),7) + ']').Lag(1),[Measures].[my_value])
)
SELECT NON EMPTY {[Measures].[calc]} ON COLUMNS,
{[date.time].[day].[2014-07-21 00:00:00.0]:[date.time].[day].[2016-07-21 00:00:00.0]} ON ROWS
FROM [my_cube]
我正在尝试执行一个查询,计算一段时间内指定时间范围内的度量总和。
WITH MEMBER
[Measures].[calc] as
SUM (
{ [date.time].[day].CurrentMember.LEAD(-30):[date.time].[day].CurrentMember },
[Measures].[my_value]
)
SELECT NON EMPTY {[Measures].[calc]} ON COLUMNS,
{[date.time].[day].[2014-07-21 00:00:00.0]:[date.time].[day].[2016-07-21 00:00:00.0]} ON ROWS
FROM [my_cube]
此代码有效,它 return 对我来说是当前成员加上它之前的最后 30 个成员的总和,但我正在寻找一种方法来减去成员(在这种情况下为天数),几个月,因为不是所有的月份都有 30 天,有什么办法可以做到这一点?因为如果没有,我的间隔的每一天都需要做一个请求来做我在 java 代码
中想做的事情如果您的层次结构具有日-月关系(例如,日历),则可以使用日期的父级:
WITH MEMBER
[Measures].[calc] as
SUM (
{ [date.time].[calendar].CurrentMember.LEAD(-30):[date.time].[calendar].CurrentMember },
([date.time].[calendar].CurrentMember.Parent.Lag(1),[Measures].[my_value])
)
SELECT NON EMPTY {[Measures].[calc]} ON COLUMNS,
{[date.time].[day].[2014-07-21 00:00:00.0]:[date.time].[day].[2016-07-21 00:00:00.0]} ON ROWS
FROM [my_cube]
如果没有层级,可以使用day key重新生成month key:
WITH MEMBER
[Measures].[calc] as
SUM (
{ [date.time].[day].CurrentMember.LEAD(-30):[date.time].[day].CurrentMember },
(StrToMember('[date.time].[month].[' + left([date.time].[day].CurrentMember.Properties('Key'),7) + ']').Lag(1),[Measures].[my_value])
)
SELECT NON EMPTY {[Measures].[calc]} ON COLUMNS,
{[date.time].[day].[2014-07-21 00:00:00.0]:[date.time].[day].[2016-07-21 00:00:00.0]} ON ROWS
FROM [my_cube]