1. 当你的时间是时间点(2017-03-01)
with
member [Measures].[TOTAL_MONEY_环比] as '
(([Measures].[TOTAL_MONEY] / ([Measures].[TOTAL_MONEY], [ADD_T_1].[CAL_DATE].CurrentMember.PrevMember)) - 1)', FORMAT_STRING = "Percent"
select
NON EMPTY {[Measures].[TOTAL_MONEY_环比]} ON COLUMNS,
NON EMPTY TopCount({[ADD_T_1].[CAL_DATE].[2017-03-01]}, 100) ON ROWS
from [F_DRUG_USE]
说明:
这里使用的PrevMember关键字,意思就是当前轴,当前元素的上一个元素,可以理解为环比,然后直接在另一个轴上指定维度即可
with
member [Measures].[TOTAL_MONEY_同比] as '
(([Measures].[TOTAL_MONEY] / (ParallelPeriod([ADD_T_1].[CAL_DATE].[CAL_DATE], 366, [ADD_T_1].[CAL_DATE].CurrentMember), [Measures].[TOTAL_MONEY])) - 1)', FORMAT_STRING = "Percent"
select
NON EMPTY {[Measures].[TOTAL_MONEY_同比]} ON COLUMNS,
NON EMPTY TopCount({[ADD_T_1].[CAL_DATE].[2017-03-01]}, 100) ON ROWS
from [F_DRUG_USE]
说明:
这里使用的ParallelPeriod函数,表示在某一个轴上,把所选的维度向前移动多少个单位,其实光凭这个函数,就可以做同环比了。我使用的时间是年月日粒度的,所以要回推366(闰年)天,如图是年或者季度,那么那个数字就是1或者4.
2. 当你的时间为时间段
with
member [Measures].[TOTAL_MONEY_同比] as
'(([Measures].[TOTAL_MONEY] / (ParallelPeriod([ADD_T_1].[CAL_DATE].[CAL_DATE], 366, [ADD_T_1].[CAL_DATE].CurrentMember), [Measures].[TOTAL_MONEY])) - 1)', FORMAT_STRING = "Percent"
select NON EMPTY {[Measures].[TOTAL_MONEY_同比]} ON COLUMNS,
NON EMPTY TopCount({([ADD_T_1].[CAL_DATE].[2017-03-01] : [ADD_T_1].[CAL_DATE].[2017-03-31])}, 100) ON ROWS
from [F_DRUG_USE]
with
member [Measures].[TOTAL_MONEY_环比] as
'(([Measures].[TOTAL_MONEY] / ([Measures].[TOTAL_MONEY], [ADD_T_1].[CAL_DATE].CurrentMember.PrevMember)) - 1)', FORMAT_STRING = "Percent"
select
NON EMPTY {[Measures].[TOTAL_MONEY_环比]} ON COLUMNS,
NON EMPTY TopCount({([ADD_T_1].[CAL_DATE].[2017-03-01] : [ADD_T_1].[CAL_DATE].[2017-03-31])}, 100) ON ROWS
from [F_DRUG_USE]
说明:
区间时间的和第一条实际一样,只不过时间不同。有人使用Cousin这个函数,我当初没试成功,所以就没用。ParallelPeriod和他一样。
后面做同环比的时间不显示在图表中等几种,有时间了再更新。