我有一个算计的会员,使所有商店的总销售额。我使用的公式是:
SUM(([SHOP].[SHOP].Members), [Measures].[SALES])所以,即使我为一家商店过滤,以上计算的会员仍然给我带来了所有商店的总数。
问题是,如果我过滤任何其他维度(例如区域),我的计算成员将只为选定的区域带来总数--我知道这是正确的行为。
但是,我怎样才能成为一个经过计算的会员,给我带来所有商店的总销售额,而不考虑任何过滤器?
发布于 2015-02-16 11:09:05
您需要预测任何可能的切片机,然后将它们添加到您的度量中的元组中:
SUM(
(
[SHOP].[(All)]
,[REGION].[(All)]
)
, [Measures].[SALES]
)在AdvWrks中进行了模拟,通过将成员[(All)]添加到自定义度量的第一个参数中,我预见了时间切片器的添加:
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];发布于 2015-02-16 10:59:02
你得到了所有商店的总数,因为你的公式中有[SHOP].[SHOP].Members。
这一点让我感到困惑:
how can I make a calculated member that brings me the total Sales for all the Shops regardless of any filter?你已经有这样的成员了。如果您想要的是为选定的SHOP提供销售的成员,那么您真正需要的是:
SUM([SHOP].[SHOP].CurrentMember, [Measures].[SALES])编辑
回想起来,我可能理解你的难题。如果希望此计算不受任何其他筛选器的选择影响,则可能需要编辑成员的定义,以包含多维数据集中的每个层次结构的ALL成员。有点像
SUM(([SHOP].[SHOP].Members, [Region].[Region].Members),......), [Measures].[SALES])之所以需要这样做,是因为每个不完整的元组都是由引擎首先完成的。它隐式地从每个层次结构中添加成员,除非该层次结构也存在于切片器中。但是,如果显式地添加[ALL]成员,它将取代筛选器选择。
https://stackoverflow.com/questions/28539278
复制相似问题