MDX-即使在进行筛选时,总数也相同
我有一个计算过的会员,它带来了所有商店的总销售额。我使用的公式是:MDX-即使在进行筛选时,总数也相同,mdx,mondrian,Mdx,Mondrian,我有一个计算过的会员,它带来了所有商店的总销售额。我使用的公式是: SUM(([SHOP].[SHOP].Members), [Measures].[SALES]) 因此,即使我过滤一家店铺,上面计算的成员仍然会为我带来所有店铺的总数 问题是,如果我过滤任何其他维度(比如区域),我的计算成员将只为所选区域带来总数——我知道这是正确的行为 但是,我如何才能生成一个计算成员,该成员为我提供所有商店的总销售额,而不考虑任何过滤器?您将获得所有商店的总销售额,因为公式中有[SHOP].[SHOP].[
SUM(([SHOP].[SHOP].Members), [Measures].[SALES])
因此,即使我过滤一家店铺,上面计算的成员仍然会为我带来所有店铺的总数
问题是,如果我过滤任何其他维度(比如区域),我的计算成员将只为所选区域带来总数——我知道这是正确的行为
但是,我如何才能生成一个计算成员,该成员为我提供所有商店的总销售额,而不考虑任何过滤器?您将获得所有商店的总销售额,因为公式中有
[SHOP].[SHOP].[SHOP].成员
这一点让我困惑:
how can I make a calculated member that brings me the total Sales for all the Shops regardless of any filter?
你已经有这样的会员了。相反,如果您想要一名会员为所选的商店
获取销售额,您真正需要的是:
SUM([SHOP].[SHOP].CurrentMember, [Measures].[SALES])
编辑
回想起来,我可能理解你的难题。如果希望此计算不受任何其他过滤器选择的影响,则可能需要编辑成员的定义,以包含多维数据集中每个层次的ALL
成员。差不多
SUM(([SHOP].[SHOP].Members, [Region].[Region].Members),......), [Measures].[SALES])
之所以需要这样做,是因为每个不完整的元组首先由引擎完成。它隐式地添加每个层次结构中的[ALL]
成员,除非切片器中也存在该层次结构但是,如果显式添加[ALL]
成员,它将取代过滤器选择。您需要预测任何可能的切片器,然后将它们添加到度量值的元组中:
SUM(
(
[SHOP].[(All)]
,[REGION].[(All)]
)
, [Measures].[SALES]
)
在AdvWrks
中模拟,我通过将成员[(全部)]
添加到自定义度量的第一个参数中,预期会添加时间切片器:
WITH
MEMBER [Measures].[X] AS
Sum
(
(
[Subcategory].[(All)]
,[Date].[Calendar].[(All)]
)
,[Measures].[Internet Sales Amount]
)
SELECT
{
[Measures].[Internet Sales Amount]
,[Measures].[X]
} ON 0
,[Subcategory].[Subcategory].MEMBERS ON 1
FROM [Adventure Works]
WHERE
[Date].[Calendar].[Calendar Year].&[2008];
我认为您需要预测任何可能的切片器,并将每个切片器的所有成员添加到您的计算中。为什么要添加由函数.Members
创建的集合,而您只需添加相应的所有成员?它与SUM(([SHOP].[All SHOP].[REGION].[All REGIONs].[Measures].[SALES])一起工作