MDX-запрос на исключение определенной даты из диапазона дат

Мне нужно удалить все 2 месяца из набора. Этот код возвращает весь диапазон дат без исключения 2 месяца.

SELECT 
   {[Measures].[In]} ON COLUMNS,
   EXCEPT([Date].[2014].[1] : [Date].[2016].[2], [Date].[Month].[2]) ON ROWS
FROM [Shop hourly]

Печать экрана для Whytheq

Мое решение основано на том, почему отвечаю. Я создаю измерение для всех видов дат, кроме них. Пример:

SELECT {[Measures].[In sum]} ON COLUMNS,
    NON EMPTY 
        {[Shop].[11], [Shop].[22], [Shop].[33]} * 
        Except([Quarter].Children, [Quarter].[2]) * 
        [Month].Children ON ROWS
FROM [Shop hourly]
WHERE 
    ([Date].[2013].[1].[1] : [Date].[2016].[1].[1]) * 
    Except([Year].Children, [Year].[2014])

1 ответ

Решение

В AdventureWorks Я могу сделать следующее:

SELECT 
  [Measures].[Internet Sales Amount] ON 0
 ,NON EMPTY 
    Except
    (
        [Date].[Calendar].[Month].&[2005]&[7]
      : 
        [Date].[Calendar].[Month].&[2008]&[7]
     ,Exists
      (
        [Date].[Calendar].[Month].MEMBERS
       ,[Date].[Calendar Quarter of Year].&[CY Q3]
      )
    ) ON 1
FROM [Adventure Works];

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

SELECT 
  {[Measures].[In]} ON COLUMNS
 ,Except
  (
    [Date].[2014].[1] : [Date].[2016].[2]
   ,Exists
    (
      [Date].MEMBERS
     ,[Date].[Month].[2]
    )
  ) ON ROWS
FROM [Shop hourly];
Другие вопросы по тегам