1

チケット販売情報を含むキューブを作成しました。

ファクト テーブルからの顧客数の個別のカウントであるメジャーがあります。各公演の売れ残りチケットはファクト テーブルに記録され、ダミーの顧客レコードを参照する「特別な」顧客番号が割り当てられます。

売れ残りのチケットに使用される「特別な」顧客番号をカウントしない顧客番号の個別のカウントをしたいと思います。

これまでの最善の試みは、結果から 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 に答える