1

私はMDXとSSASにかなり慣れていません。最近、月ごとの開始値と、翌月の開始値で終わる各期間内の動きを必要とするレポートを作成するように依頼されました。

これを 2 つの個別の MDX で生成することはできますが、これらの結果を SSRS の 1 つのデータセットにまとめる方法については、基本的にデータベース内でデータを物理的に形成したり、トラフをウェアハウスに引き込んだりせずに、困惑しています。クエリは、両方とも異なるメジャーを使用し、1 つがさらにいくつかのディメンション フィルターを使用するため、わずかに異なります。

どんな助けでも大歓迎です。ここの誰かが私が必要とするものにたどり着くための他の方法について助けたり、役に立つアドバイスを提供してくれることを願っています:

    WITH MEMBER [Member1] AS AGGREGATE( ({[SRD Date].[Base Report Date].& [1]},{[SRD Date].[Current Year].& [Yes]}),  [Measures].[Amount])
SELECT NON EMPTY {  [member1]  } ON COLUMNS
    , NON EMPTY {([SRD Date].[Year].[Year].ALLMEMBERS
     * [SRD Date].[Month Key].[Month Key].ALLMEMBERS
      * [SRD Date].[Month Of Year].[Month Of Year].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION
    , MEMBER_UNIQUE_NAME ON ROWS FROM (
        SELECT (
                - { [Resource].[Category].& [Support]
                , [Resource].[Category].& [Bolt-on] }
                ) ON COLUMNS
        FROM (
                SELECT ([Exclude Test Accounts]) ON COLUMNS
                FROM (
                    SELECT ([OnlyUnitsAndItems]) ON COLUMNS
                    FROM (
                        SELECT ([ExcludeNonReportableMonths]) ON COLUMNS
                        FROM [Cube1]
) ) ) ) 



WITH MEMBER [Member2] AS AGGREGATE( ( {[SRD Date].[Current Year].& [Yes]}),  [Measures].[Amount Of Movement])
SELECT NON EMPTY {  [Member2]   } ON COLUMNS
    , NON EMPTY {([SRD Date].[Year].[Year].ALLMEMBERS
     * [SRD Date].[Month Key].[Month Key].ALLMEMBERS
      * [SRD Date].[Month Of Year].[Month Of Year].ALLMEMBERS
       * [SRD].[Movement Type].[Movement Type].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION
    , MEMBER_UNIQUE_NAME ON ROWS FROM (
        SELECT (
                - { [Resource].[Category].& [Support]
                , [Resource].[Category].& [Bolt-on] }
                ) ON COLUMNS
        FROM (
                SELECT ([Exclude Test Accounts]) ON COLUMNS
                FROM (
                    SELECT ([OnlyUnitsAndItems]) ON COLUMNS
                    FROM (
                        SELECT ([ExcludeNonReportableMonths]) ON COLUMNS
                        FROM [Cube1]
) ) ) ) 
4

1 に答える 1

1

両方の WITH 句を組み合わせて (コンマや間に何も入れずに!)、両方のメンバーを列軸にリストします。

WITH MEMBER MEMBER [Member1] AS AGGREGATE( ({[SRD Date].[Base Report Date].& [1]},{[SRD Date].[Current Year].& [Yes]}),  [Measures].[Amount])
            MEMBER [Member2] AS AGGREGATE( ( {[SRD Date].[Current Year].& [Yes]}),  [Measures].[Amount Of Movement])
SELECT NON EMPTY {  [Member1], [Member2]   } ON COLUMNS
    , NON EMPTY {([SRD Date].[Year].[Year].ALLMEMBERS
     * [SRD Date].[Month Key].[Month Key].ALLMEMBERS
      * [SRD Date].[Month Of Year].[Month Of Year].ALLMEMBERS
       * [SRD].[Movement Type].[Movement Type].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION
    , MEMBER_UNIQUE_NAME ON ROWS FROM (
        SELECT (
                - { [Resource].[Category].& [Support]
                , [Resource].[Category].& [Bolt-on] }
                ) ON COLUMNS
        FROM (
                SELECT ([Exclude Test Accounts]) ON COLUMNS
                FROM (
                    SELECT ([OnlyUnitsAndItems]) ON COLUMNS
                    FROM (
                        SELECT ([ExcludeNonReportableMonths]) ON COLUMNS
                        FROM [Cube1]
) ) ) ) 

両方のクエリの他の重要な違いを見逃さなかったことを願っています。

于 2013-08-19T17:28:28.183 に答える