Создать меру в MDX для набора членов

Мне нужно что-то следующее:

with member Measures.Test2 as (Measures.Test, {[Assets Monthly].[Disbursed Date].&[2014], [Assets Monthly].[Disbursed Date].&[2015]})
select Measures.Test2 on columns
from databaseX

Это работает, только если я установил его только с одним членом, например:

with member Measures.Test2 as (Measures.Test, [Assets Monthly].[Disbursed Date].&[2014])

Ошибка, которую я получаю в первом случае:

Функция ожидает строковое или числовое выражение для аргумента. Выражение набора кортежей было использовано.

1 ответ

Решение

Против AdvWrks:

WITH 
  MEMBER Measures.Test2 AS 
    Sum
    (
      {
        [Date].[Calendar].[Calendar Year].&[2006]
       ,[Date].[Calendar].[Calendar Year].&[2007]
      }
     ,[Measures].[Internet Sales Amount]
    ) 
SELECT 
  Measures.Test2 ON COLUMNS
FROM [Adventure Works];

Ваш сценарий:

WITH 
  MEMBER Measures.Test2 AS 
    Sum
    (
      {
        [Assets Monthly].[Disbursed Date].&[2014]
       ,[Assets Monthly].[Disbursed Date].&[2015]
      }
     ,Measures.Test
    ) 
SELECT 
  Measures.Test2 ON COLUMNS
FROM databaseX;

Это красивее. Создал вычисляемый элемент в иерархии Date и поместил меры в WHERE слайсер:

WITH 
  MEMBER [Date].[Calendar].[testPeriod] AS 
    Aggregate
    (
      {
        [Date].[Calendar].[Calendar Year].&[2006]
       ,[Date].[Calendar].[Calendar Year].&[2007]
      }
    ) 
SELECT 
  [Date].[Calendar].[testPeriod] ON COLUMNS
FROM [Adventure Works]
WHERE 
  [Measures].[Internet Sales Amount];
Другие вопросы по тегам