2016-10-03 5 views
0

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

WITH 
    MEMBER [Creation Date].[2017].[2017/01].[2017/01].[2017/01/11] AS 
    Aggregate 
    (
     Filter 
     (
     [Creation Date].[Minute].MEMBERS 
     , 
      [Creation Date].[Minute].CurrentMember.Name >= '2017/01/11 07:45' 
     AND 
      [Creation Date].[Minute].CurrentMember.Name <= '2017/01/11 23:59' 
    ) 
    ) 
SELECT 
    {[Measures].[Sales Count]} ON COLUMNS 
,{[Creation Date].[2017].[2017/01].[2017/01].[2017/01/11]} ON ROWS 
FROM [Sales Star Schema]; 

и возвращает исключение: «[Дата создания]. [2017]» вычисленный член не может использоваться в качестве родителя другого вычисленного члена.

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

WITH 
    MEMBER [Creation Date].[2016].[2016/01].[2016/01].[2016/01/11] AS 
    Aggregate 
    (
     Filter 
     (
     [Creation Date].[Minute].MEMBERS 
     , 
      [Creation Date].[Minute].CurrentMember.Name >= '2016/01/11 07:45' 
     AND 
      [Creation Date].[Minute].CurrentMember.Name <= '2016/01/11 23:59' 
    ) 
    ) 
SELECT 
    {[Measures].[Sales Count]} ON COLUMNS 
,{[Creation Date].[2016].[2016/01].[2016/01].[2016/01/11]} ON ROWS 
FROM [Sales Star Schema]; 

этот запрос возвращает мне правильное значение, поскольку агрегированные виды содержит значение 2016 год, 2016/01 месяц, 2016/01/11 день. Как я могу изменить структуру запроса, чтобы он не возвращал мне исключение в значениях 2017 года, но пустое значение?

ответ

0

Рассчитанные элементы являются дочерними элементами члена выбранной иерархии 0 ... однако вы одеваете их, это всегда так, поэтому лучше просто просто помещать их в свои скрипты, чтобы сохранить путаницу.

Так что я полагаю, есть иерархия называется [Year]:

WITH 
    MEMBER [Creation Date].[Year].[All].[2016/01/11] AS 
    Aggregate 
    (
     Filter 
     (
     [Creation Date].[Minute].MEMBERS 
     , 
      [Creation Date].[Minute].CurrentMember.Name >= '2016/01/11 07:45' 
     AND 
      [Creation Date].[Minute].CurrentMember.Name <= '2016/01/11 23:59' 
    ) 
    ) 
    MEMBER [Creation Date].[Year].[All].[2017/01/11] AS 
    Aggregate 
    (
     Filter 
     (
     [Creation Date].[Minute].MEMBERS 
     , 
      [Creation Date].[Minute].CurrentMember.Name >= '2017/01/11 07:45' 
     AND 
      [Creation Date].[Minute].CurrentMember.Name <= '2017/01/11 23:59' 
    ) 
    ) 
SELECT 
    {[Measures].[Sales Count]} ON COLUMNS 
,{ 
    [Creation Date].[Year].[All].[2016/01/11], 
    [Creation Date].[Year].[All].[2017/01/11] 
    } ON ROWS 
FROM [Sales Star Schema]; 

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

  • Нет связанных вопросов^_^