Мне интересно, есть ли какой-нибудь стандартный способ преобразования этого вида вычислений, чтобы не использовать область действия, а только вычисляемые элементы?
SCOPE([Dimension1].[Dimension1].[All], [Dimension2].[Dimension2].members,[Dimension3].[Dimension3].[All]);
THIS = (
Aggregate(Existing({(...some formula here...)}))
)
Например, например:
SCOPE([TestDimension].[Rolling 12] );
THIS = Aggregate([Time].[Calendar].CurrentMember:[Time].[Calendar].CurrentMember.Lag(11), [TestDimension].defaultmember);
END SCOPE;
можно заменить на что-то вроде этого:
CREATE MEMBER [TestDimension].[Rolling 12] as Aggregate([Time].[Time].currentmember:[Time].[Time].currentmember.Lag(11), [TestDimension].defaultMember)
Но я путаюсь с такими более сложными примерами.
Спасибо!