2009-11-11 29 views
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設置。沒有人會查詢該維度,所以我避免了上述問題。

有沒有更好的方法來做到這一點?

回答

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