我有一个相当标准的日期维度与财政层次结构
FiscalYear -> FiscalQuarter -> FiscalMonth -> FiscalWeek -> Date
我正在尝试定义MDX表达式以从多维数据集中的任何点查找月份成员。换句话说,无论CurrentMember
在层次结构中是什么(从会计月份到单个日期),我都想返回月份属性。
我要做的是创建一个MonthToDate(MTD)上一期间比较KPI,其中假设我们是当前财政月份的15天。我使用以下方法计算当月(工作日)的MTD:
MEMBER [Measures].[FY MTD Revenue Amount] AS
Aggregate(
PeriodsToDate([Date].[Fiscal].[Month], [Date].[Fiscal].CurrentMember)
, [Measures].[Revenue Amount]
)
我希望将其与(上一财年的月份总额/上一财政月的天数)进行比较* 15
我可以使用以下方法计算上一年的月初MTD:
MEMBER [Measures].[FY MTD Revenue Amount Year Ago] AS
Aggregate
(
PeriodsToDate([Date].[Fiscal].[Month], ParallelPeriod([Date].[Fiscal].[Fiscal Year], 1, [Date].[Fiscal].CurrentMember))
,[Measures].[Revenue Amount]
)
但我真正想要的是“前几个月的平均日值”。
答案 0 :(得分:4)
好的,解决了。我以错误的方式思考它(就像MDX一样!)。
使用Ancestor
创建了一个元组。这适用于日,周和月级别。我需要使用SCOPE
语句来控制它的适用位置:
MEMBER [Measures].[FY Month Revenue Amount Year Ago] AS
(
Ancestor(ParallelPeriod([Date].[Fiscal].[Fiscal Year], 1, [Date].[Fiscal].CurrentMember),
[Date].[Fiscal].[Month])
,[Measures].[Revenue Amount]
)
它找到上一会计年度的成员与CurrentMember的相对位置,然后在财政月份层次结构中获取该成员的祖先。