2009-06-05 18 views
1

計算されたメジャーとして返されるディメンションメンバーを取得する必要があります。MDXで計算されたメジャーとしての次元メンバー

考える:

寸法

  • お客様{ACME、EMCA、ユニバーサル輸入、ユニバーサル輸出}
  • セールスマン{ボブ、フレッド、メアリー、ジョー}
  • クレジットタイプ{ディレクター、管理者}

対策

  • 貸方値

関係

  • 顧客が価値
  • 顧客が含まれている事実の寸法であり、販売担当者とクレジットの種類は、その事実の寸法です有効な値を含む

次の処理を実行しようとしています。

顧客のロールにクレジットされた最大の$ sを持つ営業担当者を返す計算済みメジャーを作成します。例えば

| Customer   | Director | Manager | Value | 
|-------------------|----------|---------|-------| 
| ACME    | Bob  | Fred | 500 | 
| EMCA    | Bob  | Fred | 540 | 
| Universal Imports | Mary  | Joe  | 1000 | 
| Universal Exports | Mary  | Fred | 33 | 
  • ACMEは、メアリーは、私が使用したいディレクター
  • として10

と信じてい

  • マネージャーとして取締役
  • ACMEは、フレッドは500と信じているようにACMEは、ボブは490と信じていますこれは計算された尺度として、顧客が行である場合でも使用できます。

  • 答えて

    1

    私が正しくあなたの問題を理解していれば、トリックを行う必要があり、この線に沿って何かが(もちろん、あなたが適切なレベル、階層およびキューブ名を使用する必要があると思います):答えを

    with 
        member [Measures].[DirectorTemp] as topcount([Salesperson].[Salesperson].members,1,([Measures].[Credited Value],[Credit Type].[Director],[Customer].currentmember)).item(0).properties("Caption") 
        member [Measures].[Director] as iif([Measures].[DirectorTemp] = [Salesperson].UnknownMember.properties("caption"), null, [Measures].[DirectorTemp]) 
        member [Measures].[ManagerTemp] as topcount([Salesperson].[Salesperson].members,1,([Measures].[Credited Value],[Credit Type].[Manager],[Customer].currentmember)).item(0).properties("Caption") 
        member [Measures].[Manager] as iif([Measures].[ManagerTemp] = [Salesperson].UnknownMember.properties("caption"), null, [Measures].[ManagerTemp]) 
    
    
        select 
         {[Measures].[Director],[Measures].[Manager],[Measures].[Value]} on 0, 
         {[Customer].members} on 1 
        from MyCube 
    
    +0

    感謝を。私はそれを私のデータに適用しました。 簡単な質問が1つあります。 Tupleがnoneのセットを返す場合、私はSalespersonディメンションからUnknownメンバーを取得します。どうすればこれを避けることができますか? –

    +0

    "Unknown"の代わりにnullを返すようにクエリを編集しました。ちょっとひどいですが、うまくいくはずです... –

    +0

    ありがとうございます。私は若干異なって取り組みました。私はiff(isempty(** Tuple Definition **)、NULL、TOPCOUNT ....)をラップしました。 私の唯一の問題は、Customer Dimensionの2つの階層がselectステートメントにあり、結果がフィルタリングされている場合、CurrentMemberが正しく機能していないことです。 –

    関連する問題