none
mdxの小計について RRS feed

  • 質問


  • BI初心者です。

    下記の様な小計を含めた結果をMDXで取得することは可能でしょうか?
    やはり、取得結果を元にアプリケーション側で、加工する必要があるのでしょうか?

     

    宜しくお願いします。

                                          2007    2007      年度計
    部署  得意先  商品        2007/1   2007/2  
    ------------------------------------------------------------------------
    A      AAAA  1111          100     100          200
    A      BBBB   2222         100     100          200
    A      合計                        200     200          400
    B      BBBB   2222         100     100          200
    B      合計                        100     100          200
    合計                                300     300           600

    2007年6月25日 1:25

すべての返信

  • 各軸に対してカスタマイズされたセットの合計を求める事は基本的に可能です。

     

    3軸(通常軸x2, メジャー軸x1)になると、ちょっと面倒なので、2軸(通常軸x1, メジャー軸x1)にします。

     

    (編集) 部署[ A ], [ B ]を見栄え上、範囲セットに変更しました。

     

    WITH

    --SET [部署セット] AS '  [<<dim>>].[<<hier>>].[部署].MEMBERS } '

     SET [部署セット] AS ' { [<<dim>>].[<<hier>>].[部署].[ A ] : [ B ] } '

     MEMBER [<<dim>>].[<<hier>>].[合計] AS ' SUM( [部署セット] )'

    SELECT

     { GENERATE(

       [部署セット],

       { [<<dim>>].[<<hier>>].CURRENTMEMBER.CHILDREN,

        [<<dim>>].[<<hier>>].CURRENTMEMBER }

      ),

      [<<dim>>].[<<hier>>].[合計]

     }

     on axis(0),

     

     {

      [Measures].[取引金額]

     }

     on axis(1)

    FROM

     [<<cube>>]

     

    やっている事としては、指定部署(若しくは部署全体)の各メンバに対して、それ自身と子メンバを追加して、

    最後にトータルをもう一度追加するという感じになると思います。

     

    3軸(通常軸x2, メジャー軸x1)であれば、axis(1)が時間ディメンションで、WHERE句にメジャー

    ディメンションの分析したいメンバを指定することになると思います。

    但し、axis(0), axis(1)のどちらの軸が先に集計されるかで値が変わる場合は、MDX上で明示的に

    メンバ計算順序を指定する必要があります。

     

     

    最後に、MDXで有用な書籍をあげておきます。

     翔泳社出版 Microsoft OLAPソリューション ISBN4-88135-938-X  ¥5,800円

     

    SQL Server7のころの書籍ですが、MDXについては未だに有用であると思います。

    ただ、書籍自体が再販されてないのか、一部ではプレミア値段がついているので

    懐と要相談、ということで。

     

    (追記) 上記書籍は、日本語で解説されたMDXで、ということです。英語書籍であれば

     2005に対して確か4~5冊程度は出版されていたと思います。

     

    • 回答の候補に設定 CrimsonPork 2012年3月8日 8:31
    2007年6月25日 4:42