我已经构建了一个包含门票销售信息的多维数据集。
我有一个度量,它是事实表中不同的客户数量。 每个演出的未售票都记录在事实表中,并被分配一个“特殊”客户编号,该编号指的是虚拟客户记录。
我希望客户编号的不同数量不计入用于未售票的“特殊”客户编号。
到目前为止,我最好的尝试是创建一个计算度量,从结果中排除单个客户编号。对于下面的查询,数字是正确的。
WITH SET [RealPeople] AS
Filter([Customers].[CustomerNumber].CHILDREN,
[Customers].[CustomerNumber].CurrentMember.MemberValue <> -100)
MEMBER Measures.[Num Real Households] AS
DISTINCTCOUNT([RealPeople])
SELECT {Measures.[Num Households], Measures.[Num Real Households]} ON 0,
[Location].[PostalCode].CHILDREN ON 1
FROM Tickets
但是,如果用户查询包含客户编号的相同维度,则此操作无效。当发生这种情况时,[Num Real Households]度量将返回结果中每个属性成员的不同客户编号的总数,而不是为每个属性成员提供小计。
我通过创建一个仅包含客户编号的隐藏维度来解决这个问题。我将这个维度用于RealPeople集。没有人会查询该维度,所以我避免了上述问题。
有更好的方法吗?
答案 0 :(得分:0)
我认为最好的方法是使用简单的数学。从Distinct Count度量中减去此特殊客户的数量(这只能起作用,因为我假设您在售出的机票所在的家庭中永远不会有“未售出”的票证)
WITH
MEMBER Measures.[Num Real Households] AS Measures.[Num Households]
- (Measures.[Num Households],[Customers].[CustomerNumber].&[-100])
SELECT {Measures.[Num Households], Measures.[Num Real Households]} ON 0
,[Location].[PostalCode].CHILDREN ON 1
FROM Tickets