Как построить запрос MDX за два периода времени?

У меня есть следующий MDX:

SELECT 
  NON EMPTY 
    {
      [Measures].[Returns]
     ,[Measures].[Returns]
    } ON COLUMNS
 ,NON EMPTY 
    {[Employees].[Company].[Company].ALLMEMBERS}
  DIMENSION PROPERTIES 
    MEMBER_CAPTION
   ,MEMBER_UNIQUE_NAME
   ON ROWS
FROM 
(
  SELECT 
    StrToSet
    ("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
     ,CONSTRAINED
    ) ON COLUMNS
  FROM [cbSales]
)
WHERE 
  IIF
  (
      StrToSet
      ("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
       ,CONSTRAINED
      ).Count
    = 1
   ,StrToSet
    ("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
     ,CONSTRAINED
    )
   ,[Exec Date].[Hierarchy].CurrentMember
  );

В обоих столбцах показаны возвращенные данные за месяц 2014/01

Я хочу получить данные за следующий месяц (2014/02) во втором столбце.

Как я могу изменить запрос для достижения моей цели.

1 ответ

Я попробую повторить с кубом AdvWks, поэтому в настоящее время не проверено:

WITH 
  MEMBER [Measures].[ReturnsNextMth] AS 
    (
      [Measures].[Returns]
     ,[Exec Date].[Hierarchy].CurrentMember.NextMember
    ) 
SELECT 
  NON EMPTY 
    {
      [Measures].[Returns]
     ,[Measures].[ReturnsNextMth]
    } ON COLUMNS
 ,NON EMPTY 
    {
        [Employees].[Company].[Company].ALLMEMBERS
      * 
        [Exec Date].[Hierarchy].[Month Num].ALLMEMBERS
    } ON ROWS
FROM 
(
  SELECT 
    StrToSet
    ("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
     ,CONSTRAINED
    ) ON COLUMNS
  FROM [cbSales]
);

Нечто подобное в AdvWks:

WITH 
  MEMBER [Measures].[ReturnsNextMth] AS 
    (
      [Measures].[Internet Order Count]
     ,[Date].[Calendar].CurrentMember.NextMember
    ) 
SELECT 
  NON EMPTY 
    {
      [Measures].[Internet Order Count]
     ,[Measures].[ReturnsNextMth]
    } ON COLUMNS
 ,NON EMPTY 
    {
        [Sales Territory].[Sales Territory].[Country].MEMBERS
      * 
        [Date].[Calendar].[Month].ALLMEMBERS
    } ON ROWS
FROM 
(
  SELECT 
    [Date].[Calendar].[Month].&[2008]&[1] ON COLUMNS
  FROM [Adventure Works]
);

Это дает эти результаты. Я нахожу это довольно удивительным, поскольку суб-выбор, кажется, предполагает, что у нас есть только январь-2008, но суб-выбор - немного странное существо. Эта статья объясняет: http://bisherryli.com/2013/02/08/mdx-25-slicer-or-sub-cube/. Итак, наша мера [ReturnsNextMth] все еще функционирует нормально.

Другие вопросы по тегам