計算されたメンバーの問題は、すべての行タプル[User].CurrentMember
のメンバーに設定されているため、カウントが合計になることです。All
必要なのは、ディメンションを効果的[Customer].CurrentMember
に[Date].CurrentMember
フィルタリングする方法です。[User]
意味のあるメジャーを使用する必要があります。つまり、関心のあるディメンションメンバーの意味のある結合に対して空でない値があります。
これを見つけるには、次のようなクエリを実行することから始めることができます。
SELECT
NON EMPTY CrossJoin(
[User].[User Name].Members,
[Measures].[Some measuse]
) ON COLUMNS,
NON EMPTY CrossJoin(
[Date].[Date].Members,
[Customer].[Customer Name].Members
) ON ROWS
FROM [Project]
あなたはSome measure
適切に選択したでしょう。そのクエリの結果は多くの空のセルになりますが、特定の行で、値を持つ列は、特定のCustomer x Dateタプル(行上)に関連するユーザーに対応します。すべての行についてそれらの列を数えたいと思います。COUNTとFILTERが必要な場合、計算されたメンバーを使用したクエリは次のようになります。
WITH MEMBER [Measures].[User count] AS
COUNT(
FILTER(
[User].[User Name].Members,
NOT ISEMPTY([Measures].[Some measure])
)
)
SELECT
NON EMPTY {[Measures].[User count]} ON COLUMNS,
NON EMPTY CrossJoin(
[Date].[Date].Members,
[Customer].[Customer Name].Members
) ON ROWS
FROM [Users]
私はここでかなりのことを想定していますが、いくつかの実験でそれを解決できるはずです。