2016-10-07 50 views
1

我对这个嚎叫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] 

另一个例子将是商店平均,这也是不受切片机影响

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

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

MyCube structure

任何帮助\指导将是非常赞赏。

其同\类似的问题,因为在下面的链接,但得到的答复也让我有相同的结果,我现在得到: MDX ignoring Excel filter

回答

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]; 
+0

感谢您的回复,whytheq!就直接的'mdx'而言,它似乎与我的数据没有什么区别。 – Petri

+0

看来,它要做我想做的事情,它不能在多维数据集级别上完成,而是在可视化级别上完成。 – Petri