2013-08-19 2 views
1

Я довольно новичок в MDX и SSAS. Недавно мне было предложено подготовить отчет, который требует начального значения для каждого ежемесячного периода, а затем движение в течение каждого периода, заканчивающегося в стартовом значении в течение следующего месяца.MDX и объединить два подобных

Я могу создать это в двух отдельных MDX, см. Ниже, но я смущен тем, как объединить эти результаты в одном наборе данных в SSRS, не в основном формируя данные физически в базе данных и вытаскивая корыто на склад. Запросы немного отличаются, поскольку оба они используют другое измерение, а затем используют еще несколько фильтров размеров.

любой помощь будет наиболее высокой оценкой и я надеюсь, что кто-то здесь может помочь или предложить некоторые полезные советы о других способах, возможно, получить на то, что мне нужно:

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] 
)))) 

ответ

1

Просто объединить и с оговорками (без запятой ! или что-нибудь между ними), и список членов обоих в столбцах оси:

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] 
)))) 

Я надеюсь, что я не пропустил ни одного важного другое различие между двумя запросами.

Смежные вопросы