Ssas 缺乏上下文的度量
我正在努力使衡量标准Ssas 缺乏上下文的度量,ssas,mdx,olap,Ssas,Mdx,Olap,我正在努力使衡量标准counttopromos与上下文相关。 目前,它正在计算TopX中所有元组的计数。与我运行的AdWrks版本相比,这是14 如何将当前年份的上下文强制添加到度量值CountTopPromos WITH SET FullSet AS NonEmpty ( [Date].[Calendar].[Calendar Year].MEMBERS * [Promotion].[Promotion].MEMBERS
counttopromos
与上下文相关。目前,它正在计算
TopX
中所有元组的计数。与我运行的AdWrks版本相比,这是14
如何将当前年份的上下文强制添加到度量值CountTopPromos
WITH
SET FullSet AS
NonEmpty
(
[Date].[Calendar].[Calendar Year].MEMBERS
*
[Promotion].[Promotion].MEMBERS
,[Measures].[Reseller Order Count]
)
SET TopX AS
Generate
(
[Date].[Calendar].[Calendar Year].MEMBERS
,TopPercent
(
[Date].[Calendar].CurrentMember
*
Extract
(
FullSet
,[Promotion].[Promotion]
)
,90
,[Measures].[Reseller Order Count]
)
)
MEMBER [Measures].[CountTopPromos] AS
Count(TopX) //<<<<<<<<<<<< CONTEXT LACKING HERE <<<<<<<
SELECT
NON EMPTY
{[Measures].[CountTopPromos]} ON 0
,{TopX} ON 1
FROM [Adventure Works];
与
设全套为
非空
(
[日期][日历][日历年].成员
*
[晋升][晋升].成员
,[Measures]。[经销商订单数量]
)
将TopX设置为
生成
(
[日期][日历][日历年].成员
,最高
(
[日期][日历].CurrentMember
*
摘录
(
全套
,[促销][促销]
)
,90
,[Measures]。[经销商订单数量]
)
)
成员[措施][CountTopPromos]为
计数(TopX)/由于在定义轴之前对集合进行计算(请参见),如果使用命名集合TopX
,则无法将行上下文带入计算中。但是,您可以将其定义复制到[Measures].[counttopromos]
的定义中,将[Date].[Calendar].[Calendar Year]替换为[Date].[Calendar]。当前成员
:
MEMBER [Measures].[CountTopPromos] AS
Count(
Generate
(
[Date].[Calendar].currentMember
,TopPercent
(
[Date].[Calendar].CurrentMember
*
Extract
(
FullSet
,[Promotion].[Promotion]
)
,90
,[Measures].[Reseller Order Count]
)
)
)
提供您想要的结果。而且-由于Generate
在这里只循环一个成员-您也可以忽略它:
MEMBER [Measures].[CountTopPromos] AS
Count(
TopPercent
(
[Date].[Calendar].CurrentMember
*
Extract
(
FullSet
,[Promotion].[Promotion]
)
,90
,[Measures].[Reseller Order Count]
)
)
并且会得到同样的结果。另一个非常漂亮的选择:
MEMBER [Measures].[CountTopPromos] AS
Count
(
Intersect
(
{
[Date].[Calendar].CurrentMember * [Promotion].[Promotion].MEMBERS
}
,TopX
)
)
你的要求是什么?我知道你想在行上显示“所有时间的TopX”。但应该采取什么措施?我假设您不希望包含行上下文,因为这样计数将始终为1.0到1.0,因此,请使用一个度量值,该度量值表示多少of@FrankPl我同意OP有点含糊。我已经编辑过了,希望现在更准确些。+1谢谢弗兰克。是的,我需要记住概念上的执行顺序。只是想到了另一个可能的解决方案,这是相当优雅的-已张贴在下面-你认为呢?