MDX计算的度量不受切片器的影响

时间:2016-10-07 12:55:43

标签: ssas mdx

我是这个嚎叫MDX的新手,并且似乎无法弄清楚如何进行以下工作。

我有一些计算度量,它根据与其余数据相关的行计算值。 例如。单个商店的销售总额对所有商店的总贡献。

以下是2种表达方式:

([Measures].[Total] / MAX([Store].[Store ID].ALLMEMBERS,[Measures].[Total])
([Measures].[Total] / SUM([Store].[Store ID].[All],[Measures].[Total])

我遇到的问题是我的切片机不会影响结果。 换一种说法: 可以说,商店对100家商店(所有商店)的贡献为10%。 按区域(例如)过滤时,它会将商店总数降低到50,但贡献仍然显示为10%。我需要的贡献是相对于50商店而不是100商店。

由于某种原因,日期似乎有效,但这可能是因为它不会影响轴。

我不确定多维数据集(内置在SSAS中)如何在幕后构建查询,但我想它看起来像这样:

WITH
MEMBER
[Measures].[%GT Total]
AS
(
[Measures].[Total] / MAX([Store].[Store ID].ALLMEMBERS,[Measures].[Total])
--[Measures].[Total] / SUM([Store].[Store ID].[All],[Measures].[Total])
),
FORMAT="Percent"

SELECT
{[Measures].[Total],[Measures].[%GT Total]} ON AXIS(0)
,NON EMPTY{[Store].[Store ID].CHILDREN} ON AXIS(1)
FROM
[RMS_BISale]
where 
[Store].[Division].[Division ID].[Wholesale]

另一个例子是Store Average,它也不受切片器的影响

(AVG([Store].[Store ID].[Store ID].members, [Measures].[Total]))

或商店的区域划分......他们似乎都有同样的问题。

MyCube structure

非常感谢任何帮助\指导。

它与下面的链接相同\类似的问题,但那里的答案给了我与我现在得到的相同的结果: MDX ignoring Excel filter

1 个答案:

答案 0 :(得分:0)

就直接mdx添加EXISTING有帮助吗?

WITH
MEMBER
[Measures].[%GT Total]
AS
(
[Measures].[Total] 
/ MAX(EXISTING [Store].[Store ID].ALLMEMBERS,[Measures].[Total])

),
FORMAT="Percent"

SELECT
{[Measures].[Total],[Measures].[%GT Total]} ON AXIS(0)
,NON EMPTY{[Store].[Store ID].CHILDREN} ON AXIS(1)
FROM
[RMS_BISale]
where 
[Store].[Division].[Division ID].[Wholesale];