2014-09-17 5 views
0

Попытки получить [Number] и [Сумма времени нахождения] для всех изменений, которые были открыты в течение периода 201405.Наиболее эффективный способ фильтрации несколько измерений

Лучшее определение открытого, я могу думать о том, является: - Изменения, которые были авторизованы до или во время [MonthPeriod], в то время как закрыт во время или после [MonthPeriod]

SELECT 
    [Measures].[Sum of Time Spent] ON COLUMNS 
    , 
    [FactChange].[Number].[Number] ON ROWS 
FROM 
    [Change Management] 
WHERE 
    (FILTER(
      [DimLoggedDate].[MonthPeriod].[MonthPeriod] 
      ,[DimLoggedDate].[MonthPeriod].MEMBERVALUE <= 201405 
     ) 
     , 
     FILTER(
      [DimClosedDate].[MonthPeriod].[MonthPeriod] 
      ,[DimClosedDate].[MonthPeriod].MEMBERVALUE >= 201405 
     )) 

Этот запрос возвращает список всех номеров, с нулевым значением, когда фильтры в WHERE не применяются. Я хотел бы удалить элементы NULL.

Поскольку запрос возвращает ВСЕ числа, интересно, является ли это наиболее эффективным запросом для решения проблемы. Применение NonEmpty() приведет к удалению чисел, но поскольку все изменения перечислены, разве это не повышает нагрузку на систему, чем требуется?

ответ

0

Вы делаете это, просто добавив «Non пустой» в предложении по строкам:

... 
non empty [FactChange].[Number].[Number] on Rows 
... 
Смежные вопросы