1

Visual Studios BIDS を使用して既存の OLAP キューブを変更しています。

SSMS: アプリケーションのステータスを追跡するための 10 の異なる測定値を含む、非常に細かい粒度を持つ基礎となるファクト テーブル (FactTableMain) があります (それらはほとんどフラグのように機能します) 。メジャーには、個人の ID 値または がありNULLます。

Visual SSASStudio の場合OLAP:

  1. 10 個のメジャー グループがあります。各メジャー グループは、 MeasureName である FactTableMain メジャーの 1 つを選択する DSV 名前付きクエリに基づいていますIS NOT NULL
  2. PersonName 列と PersonID 列のみが返される各メジャー グループのドリル アクション。

各メジャー グループの演習:

  1. 重複を表示します (すべてのファクト テーブルの列がドリルの戻り列であるとは限らないため)
  2. メジャー カウントが表示する予想される行数を返さない

私が試してみました:

  1. ドリルスルー アクションでフィルターと個別を使用する複数のMDX条件がありますが、違いがないか、アクションが完全に消えます。
  2. FactTableMain から個別の ID を選択するジャンク ドリル ディメンションを作成し、それをドリル スルー アクションの唯一の戻り列として設定します (戻り行をドリルスルーしても違いはありません)。
  3. MDXアクション式を使用して、新しい (標準) アクションを行セットおよびデータセットとして作成する

MDXこれらのプロパティを持つアクション式を持つ新しい(標準)アクションが必要だと思います:

  • ターゲット タイプ = セル
  • 対象物=全細胞
  • アクション コンテンツ タイプ = 行セット

現在の MDX クエリは結果を返しますが、最初のメジャーの全体的な合計に対してのみであり、正しくフォーマットされていません。クライアント アプリケーションで別のメジャーを選択し、クエリを再実行して再度ドリルしても機能しません。私は検索して検索しましたが、アイデアがなく、運命の暗黒の穴に座っています。:(

私の現在のMDXクエリは次のとおりです。

WITH 
  SET [person] AS 
    NonEmpty([person].[person].[person]) 
  MEMBER CurrentMeasure AS 
    [Measures].CurrentMember 
SELECT 
  NonEmpty
  (
    Filter
    (
      [Quarter].[Quarter].[Quarter].MEMBERS
     ,[Quarter].[Quarter].CurrentMember
    )
  ) ON COLUMNS
 ,(
    [person]
   ,NonEmpty([person].[person ID].[ID])
  ) ON ROWS
FROM [Applications];

目標: 最終的には、ユーザーが選択している現在のメジャーを把握し、行/列のユーザーのディメンション選択によってフィルター処理できるように、ドリル アクションを十分に動的なものにしたいと考えています。

質問:

  1. 元のドリル スルー アクションの条件を使用して、個別の行または空でない行をフィルター処理する方法はありますか? ドリルの制限があることは知っていますが、ドリルの制限を回避する方法はありますか?
    1. ユーザーの選択に動的に対応する標準の行セットアクションを作成するにはどうすればよいですか (私の目標)。
    2. 何か案は?

URL アクション タイプは、ビジネス ニーズのオプションではありません。

編集: DSV から不要なものをすべて削除し、個別の行のみを選択しています。各 ID には複数のアプリケーションを含めることができ、アプリケーションには複数の対象領域を含めることができます。ドリルは、ID、アプリケーション、関心のある領域ごとに 1 行を返すようになりました。アプリケーションの数や関心のある分野に関係なく、ドリルが個別の ID を返すことだけを望んでいます。ここからどこへ行けばいいのかわからない。ドリルで申請番号や関心分野のディメンションをフィルタリングできますか?

4

2 に答える 2

0

最後の例を参照してください: http://asstoredprocedures.codeplex.com/wikipage?title=Drillthrough&referringTitle=Home

その ASSP アセンブリを SSAS に展開する必要があります。アクションの実行中にすべての属性の現在のコンテキストを取得するために使用されます。ただし、ユーザーがアクションを開始したメジャーの従業員ごとの合計が返されます。

"select {[Measures].CurrentMember} on 0, NON EMPTY [person].[person].[person].Members on 1 from (select (" + ASSP.CurrentCellAttributes([Measures].CurrentMember) + ") on 0 from [Application])"
于 2015-07-19T14:51:29.867 に答える
0

私はあなたがあまりにも速く進んでいると信じています。DSV は、ブラウザーで重複することなくデータを表示する必要があります。そうでない場合は、DSV に戻って内容を確認してください。おそらく、ファクト テーブルの上にビュー (インデックス付きビュー) を作成して、必要なデータのみをクエリするようにします。また、ディメンションが正しくリンクされていますか? 寸法が正しく設定されておらず、連結用のキーが間違っているために、重複が発生することがあります。

MDX の場合: [計算] タブで計算を作成すると、その中でドリルを実行できます。そうしないと、毎回正しい MDX クエリを作成する必要があります。

HTH。

于 2015-07-08T03:24:00.417 に答える