Иерархия объединения многомерных выражений

Я пытаюсь объединить несколько элементов из одной иерархии, но это приводит к следующей ошибке:

Query (11, 3) The Jr-Kw-Mnd-Dag hierarchy is used more than once in the Crossjoin function.

Это базовая версия запроса, который я использую:

SELECT 
    NON EMPTY { 
        [Measures].[Amount] 
    } ON COLUMNS
    , NON EMPTY { 
        [Realisatiedatum].[Jr-Kw-Mnd-Dag].[Jaar] 
        * [Realisatiedatum].[Jr-Kw-Mnd-Dag].[Maand])
    } ON ROWS

FROM 
    [Cube]

Jaar соответствует году на английском языке, Maand соответствует месяцу на английском языке. Это то, что я пытаюсь выполнить:

...
november 2013
december 2013
januari 2014
februari 2014
...

Наконец, что не менее важно, иерархия:

введите здесь описание изображения


person Menno    schedule 05.02.2014    source источник


Ответы (3)


Обычно я создаю несколько иерархий в измерении «Дата», таких как «Календарь», «Финансы» и другие, которые содержат только финансовый год, календарный год, кварталы и т. д.

Если у вас есть другая иерархия, содержащая месяц, вы можете соединить год иерархии, которую вы используете в данный момент; тогда вы не будете использовать одну и ту же иерархию дважды в функции crossjoin.

E.g.

, NON EMPTY { 
  ( [Date Dimension].[Financial].[Financial Year]
    * [Date Dimension].[Calendar].[Month] ) }
person Danny D    schedule 05.02.2014
comment
Спасибо, Дэнни, к счастью, у меня была другая доступная Иерархия. Разве нет другого способа объединить этих членов из одной Иерархии? - person Menno; 05.02.2014
comment
К сожалению, я не думаю, что есть Аквилло. - person Danny D; 05.02.2014

Если вы хотите пропустить некоторые уровни в пользовательской иерархии, лучше всего выполнить перекрестное соединение соответствующих иерархий атрибутов оставшихся уровней.

Здесь я использую иерархию атрибутов ([География].[Город].[Город], ..) вместо пользовательской иерархии ([География].[География].[Город], ..) формирую куб AW:

SELECT 
[Measures].[Internet Sales Amount] ON 0,
[Geography].[State-Province].[State-Province] *  [Geography].[City].[City] ON 1 FROM [Adventure Works]

Филип,

person Vhteghem_Ph    schedule 05.02.2014

Эта проблема связана с попыткой извлечь несколько уровней из одной и той же иерархии с помощью перекрестного соединения, и вы действительно не можете этого сделать. Как упоминалось в других ответах, хороший обходной путь — вытащить нужные столбцы из мест, отличных от той же иерархии. Но это работает только в том случае, если это позволяет конструкция куба.

Ваша конкретная проблема может быть связана с инструментом, который вы используете для разработки запроса, и с тем, какие уровни в иерархии он возвращает.

Например, следующий запрос при выполнении в SQL Server Management Studio (версии до V12.0.2000.8) возвращает только уровень City в иерархии. Но при выполнении из режима разработки в мастере импорта таблиц PowerPivot он возвращает все уровни в иерархии вплоть до уровня города, включая страну, штат-провинцию и город.

select 
[Measures].[Internet Order Count] on columns,
non empty [Customer].[Customer Geography].[City] on rows
from [Adventure Works] 
person MarkB28    schedule 12.11.2015