При расчете периода за периодом вам нужно изучить функцию PrevMember ...
http://msdn.microsoft.com/en-us/library/ms144719.aspx
Ниже приведен фрагмент, который должен дать вам хорошее начало периода с периодом ...
WITH
MEMBER [Measures].[WO Actual Amount PP] AS
(
[Order Date].[Calendar].CurrentMember.PrevMember
,[Measures].[WO Actual Amount]
)
,FORMAT_STRING = "Currency"
MEMBER [Measures].[Prior Period Growth %] AS
IIF(
[Measures].[WO Actual Amount PP] = 0
,'N/A'
,([Measures].[WO Actual Amount]-[Measures].[WO Actual Amount PP])/[Measures].[WO Actual Amount PP]
)
,FORMAT_STRING = "Percent"
SELECT
NON EMPTY {
[Measures].[WO Actual Amount],
[Measures].[WO Actual Amount PP],
[Measures].[Prior Period Growth %]
} ON 0,
NON EMPTY {
[Order Date].[Calendar Year].[Calendar Year].Members
} ON 1
FROM
[<<cube name>>]
Для того же периода предыдущего года или расчета, вы захотите взглянуть на функцию ParallelPeriod ...
http://msdn.microsoft.com/en-us/library/ms145500.aspx
Ниже приведен фрагмент, который должен дать вам хорошее начало года за годом ...
WITH
MEMBER [Measures].[WO Actual Amount YoY] AS
(
ParallelPeriod(
[Order Date].[Calendar].[Calendar Year]
,1
,[Order Date].[Calendar].CurrentMember
)
,[Measures].[WO Actual Amount]
)
,FORMAT_STRING = "Currency"
MEMBER [Measures].[Prior Period Growth %] AS
IIF(
[Measures].[WO Actual Amount YoY] = 0
,'N/A'
,([Measures].[WO Actual Amount]-[Measures].[WO Actual Amount YoY])/[Measures].[WO Actual Amount YoY]
)
,FORMAT_STRING = "Percent"
SELECT
NON EMPTY {
[Measures].[WO Actual Amount],
[Measures].[WO Actual Amount YoY],
[Measures].[Prior Period Growth %]
} ON 0,
NON EMPTY {
[Order Date].[Calendar Month].[Calendar Month].Members
} ON 1
FROM
[<<cube name>>]