我是这个嚎叫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]))
或商店的区域划分......他们似乎都有同样的问题。
非常感谢任何帮助\指导。
它与下面的链接相同\类似的问题,但那里的答案给了我与我现在得到的相同的结果: MDX ignoring Excel filter
答案 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];