2016-11-10 13 views
0

アンケートの質問に関する情報を返すMDXクエリを作成しようとしています。私は結果に平均の回答と合計の回答が必要です。私には2つのタイプの質問があります。 1つのタイプの質問には1つの回答しかありません。別のタイプの質問には、複数の回答を含めることができます(該当するすべてを選択してください)。各質問は、質問IDと回答IDに関連付けられています。次のクエリはSSAS MDXクエリでDistinct Dimensionの値を取得する方法

Select NON EMPTY 
    { 
    [Measures].[Average Response], [Measures].[Total Count] 
    } ON 0 
, NON EMPTY 
    { 
    ([Question].[Question ID].[Question ID].ALLMEMBERS) 
    } ON 1 
From [Cube] 

平均応答は、単一の応答と複数の応答(二つの異なるファクトテーブル)の両方からの組み合わせである(やや)動作します。合計数は、2つのテーブルの組み合わせでもあります。問題は、単一回答の質問では、回答者の数を数えることができるということです。複数回答の質問については、調査よりも多くの回答を得ることができます。私は本当に何人が答えを出したのか知りたい。これを行うには、回答者IDの個数が必要であると思います。そこで私は最初の軸をこれに変更しようとしました。

これはうまくいかず、私はそれが本当に期待できませんでした。私はを持っています "関数は、3つの引数のタプルセット式を期待しています。文字列または数値式が使用されました。私のお気に入りのSSASエラーメッセージが急速になっています。私はまだこれで緑色で、私はまだSQLを考えていると思います。同じクエリ内の回答の平均と異なるディメンション値の数を取得するにはどうすればよいですか。ところで、私のクエリはスライサーを持っていますが、必要ならばそれを提供することができますが、スライサーの有無にかかわらず同じ問題が発生するため、関連性がないと思います。

答えて

0

MDX DistinctCount関数を使用する場合、指定されたデータセットの個別の空でないタプルの数を返します。おそらく、

DistinctCount({[Respondent].[Respondent ID].members * [Measures].[Total Count]})

のようなものは、データのセット(例えば{...})で作業しているので、そのようにやってみてください。

大量のデータを扱う場合は、Distinct Countメジャーを作成することを検討することをお勧めします。 DistinctCount関数自体はSSAS Formula Engineクエリですが、Distinct Count measureを使用すると、Analysis Servicesはストレージエンジンと数式エンジンの両方を使用できます。詳細は、Analysis Services Distinct Count Optimizationを参照してください。

+0

私はあなたが置いたものを試してみました。私の好きなメッセージを得る_ "この関数は、1つの引数のタプルセット式を期待しています。文字列または数値式を使用しました。"また、私は_ "メンバー、タプルまたはセットは関数内で同じ階層を使用しなければなりません。" _欲求不満な部分は、SQLでこれを行う方法を正確に知っていることです。 –

+0

私は共感することができます - 私はまだMDXで自分自身がかなり厄介で、何年もSSASをやっています。これを言うと、 'distinctcount'関数を実行すると、手動でセットを作成するとどうなりますか? [回答者]、[回答者]、[回答者]、[回答者]、[回答者]、[回答者ID]、[質問者] '(必要に応じて質問メンバーを更新する)、返信を返すことができるかどうかを確認します。 –

関連する問題