2009-12-02 4 views
1

Рассматривая следующий ответ, я хотел заменить диапазон фильтром.MDX Заменить диапазон с помощью фильтра

MDX - Concurrent calculations based on a "record time range"?

MDX является:

with member [Measures].[TotalUsed] as sum({[Date].[YQM].&[20090501]:[Date].[YQM].&[20090907]}, [Measures].[Used]) 
select {[Measures].[Total Used]}on columns,  
      {[Color].[Colors].[All].MEMBERS}on rows 
from [Cube] 

Я пытаюсь заменить диапазон дат, с фильтром, как это:

with member [Measures].[TotalUsed] as sum(FILTER([Date].[YQM], [Date].[YQM] < [Date].[YQM].&[20090907]), [Measures].[Used]) 
select {[Measures].[Total Used]}oncolumns, 
      {[Color].[Colors].[All].MEMBERS}on rows 
from [Cube] 

Что такое условный оператор ищет в условия сравнения значений? Любая помощь будет отличной!

Спасибо!

ответ

1

Оператор фильтра требует SET, а затем EXPRESSION для фильтрации. Вы можете оставить это прямо в своей функции SUM. Часть выражения этого фильтра может быть почти любой, но для каждой ячейки в SET требуется evaulate to true/false.

- ФИЛЬТР (SET, EXPRESSION)

Это немного трудно, не зная, что ваши данные структурированы как, но ваш Постулаты, вероятно, в конечном итоге, как ниже, фильтрация строк с менее чем 50 «Неиспользуемые» для вашего временные периоды, а затем суммируя их в качестве примера.

`

WITH MEMBER [Measures].[TotalUsed] 
AS SUM (FILTER ([Date].[YQM].members, [Measures].[UnUsed] > 50), 
        [Measures].[Used]) 

SELECT {[Measures].[Total Used]} ON COLUMNS,   
{[Color].[Colors].[All].MEMBERS} ON ROWS 
FROM [Cube] 
Смежные вопросы