Sql server 2008 整个上月的MDX测量值(或上月平均日值)
我有一个相当标准的带有财务层次结构的日期维度Sql server 2008 整个上月的MDX测量值(或上月平均日值),sql-server-2008,date,ssas,mdx,dimension,Sql Server 2008,Date,Ssas,Mdx,Dimension,我有一个相当标准的带有财务层次结构的日期维度 FiscalYear -> FiscalQuarter -> FiscalMonth -> FiscalWeek -> Date 我试图定义一个MDX表达式,从多维数据集中的任意点查找month成员。换句话说,无论层次结构中的CurrentMember是什么(从会计月到单个日期),我都希望返回month属性 我想做的是创建一个MonthToDate(MTD)上一期比较KPI,假设当前会计月已经过去了15天。我使用以下公式计算
FiscalYear -> FiscalQuarter -> FiscalMonth -> FiscalWeek -> Date
我试图定义一个MDX表达式,从多维数据集中的任意点查找month成员。换句话说,无论层次结构中的CurrentMember
是什么(从会计月到单个日期),我都希望返回month属性
我想做的是创建一个MonthToDate(MTD)上一期比较KPI,假设当前会计月已经过去了15天。我使用以下公式计算当月的MTD(有效):
我想将其与(整个上一财年的月份金额/上一财年的月份天数)*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]
)
但我真正想要的是“前一年和前一个月的平均日值”。好的,解决它。我的想法是错误的(MDX通常就是这样) 使用
祖先
创建元组。这适用于日、周和月级别。我需要使用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]
)
它在上一个会计年度中找到与当前成员处于相同相对位置的成员,然后在会计月层次结构中获取该成员的祖先
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]
)