1

我构建了一个包含门票销售信息的多维数据集。

我有一个衡量标准,它是事实表中客户数量的不同计数。每场演出的未售出门票都记录在事实表中,并被分配一个“特殊”客户编号,该编号指的是虚拟客户记录。

我希望客户编号的不同计数不计算用于未售出门票的“特殊”客户编号。

到目前为止,我最好的尝试是创建一个计算度量,从结果中排除单个客户编号。对于下面的查询,数字是正确的。

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 集。没有人会查询该维度,因此我避免了上述问题。

有一个更好的方法吗?

4

1 回答 1

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
于 2009-11-30T00:44:27.497 回答