4

ファクト テーブルにいくつかの数値があり、SUM アグリゲーターを使用して数値を集計するメジャーを生成しました。しかし、問題は、たとえば 10 よりも大きい数値のみを合計したいということです。メジャー定義で一般的な式を使用してみましたが、もちろん機能しますが、動的に設定できるようにする必要があるという問題があります。この値は常に 10 であるとは限らないため、ユーザーが自分で選択できる必要があります。

より具体的には、現在の MDX は次のようになります。

と
SET [メール対策] AS '{[対策].[回答件数],
[測定値].[最初の場合の最大探索時間], [測定値].[最初の場合の平均探索時間],
[メジャー].[受信メールリクエストの数], [メジャー].[ケース内のメールの平均数],
[測定値].[平均遠征合計時間],[測定値].[返信された受信メールの数]}'

SET [組織] AS '{[Organization.Id].[860]}'
SET [Operators] AS '{[Operator.Id].[3379],[Operator.Id].[3181]}'
SET [Email Accounts] AS '{[Email Account.Id].[6]}'
MEMBER [日時].[期間] AS Aggregate ({[日時].[2008].[11].[11] :[日時].[2009].[1].[2] }))
MEMBER [Email.Type].[Email Types] AS Aggregate ({[Email.Type].[0]})
SELECT {[Email Measures]} ON 列、
[演算子] ON 行
FROM [Email_Fact]
WHERE ( [時間.日付].[期間] )

さて、問題のメンバーは、計算されたメンバー [Avg Expedition Times Total] です。このメンバーには 2 つの対策があります。[Sum Expedition Times] と [Nr of Expedition Times] を分割して平均を求めます。現在、これらすべてが機能しています。ただし、[Sum Expedition Times] は、自分/ユーザーの希望のパラメーターの上または下の値のみを集計したいと考えています。

メジャーが最終的に私に与える合計をフィルタリングするのではなく、[Sum Expedition Times] が反復する数値をフィルタリングするにはどうすればよいですか?

4

2 に答える 2

0

メンバをキューブに配置する代わりに、MDX クエリに移動することができます。次に、次のようなものを取得します....

WITH
MEMBER [Avg Expedition Times Total] AS
SUM(
    FILTER([Your Dimension],
        [Measure you want to filter] > 10),
    [Measure you want to sum])

どのディメンションとメジャーをフィルター処理して合計したいのか正確にはわかりませんが、これは正しい方向への一歩だと思います. ユーザーが MDX を変更できない (または変更したくない) 場合は、複数のメジャーを作成することも非常に確実なソリューションです。

于 2009-04-22T06:49:47.673 に答える