首页 > 解决方案 > 如何检查,正在使用哪个层次结构

问题描述

我有 2 个层次结构的 1 维数据:公历、计划日历。[公历年] - [公历月] - [公历日] [计划年] - [计划月] - [计划日] 我有 2 个 MDX 措施:

[Planning Stock] = Sum(PeriodsToDate([Data].[Planning Calendar].[(All)]), [amount])

[Gregorian Stock] = Sum(PeriodsToDate([Data].[Gregorian Calendar].[(All)]), [amount])

如何创建一种可以识别层次结构的度量?我写了类似的东西,但它不起作用:(

iif(([Data].currentmember.level is [Data].[Planning Calendar].[(All)]),
(Sum(PeriodsToDate([Data].[Planning Calendar].[(All)]), [amount])),
(Sum(PeriodsToDate([Data].[Gregorian Calendar].[(All)]), [amount]))
)

你有什么想法?

标签: ssasmdx

解决方案


您可以使用 level.hierarchy 执行此操作。看看这个例子。

with member 
measures.t
as 
axis(1).item(0).hierarchy.name

select 
{
[Measures].[Internet Sales Amount],measures.t
}
on columns,
{
[Date].[Fiscal].[Month].&[2014]&[7].children
--[Date].[Calendar].[Month].&[2013]&[6].children
}
on rows 
from [Adventure Works]

结果

在此处输入图像描述

让我们改变层次结构

with member 
measures.t
as 
axis(1).item(0).hierarchy.name

select 
{
[Measures].[Internet Sales Amount],measures.t
}
on columns,
{
--[Date].[Fiscal].[Month].&[2014]&[7].children
[Date].[Calendar].[Month].&[2013]&[6].children
}
on rows 
from [Adventure Works]

结果

在此处输入图像描述


推荐阅读