Группа и количество MDX

У меня есть следующий запрос MDX

WITH 
  MEMBER Measures.Improvement AS
     [Measures].[School Evaluation] 
   - 
     (
      [Measures].[School Evaluation]
     ,[Cycle].[Name].CurrentMember.PREVMEMBER
     )
  MEMBER Measures.PreviousEvaluation AS
     (
      [Measures].[School Evaluation]
     ,[Cycle].[Name].CurrentMember.PREVMEMBER
     )
  SELECT
     Measures.Improvement ON COLUMNS,
     Filter (
       { [Cycle].[Name].[Name].ALLMEMBERS }
     * { [School].[Name En].[Name En].ALLMEMBERS }
     , Measures.PreviousEvaluation > 0 
        AND 
         [Measures].[School Evaluation] > 0
     )
     ON ROWS
  FROM [SchoolCube];

Этот код генерирует следующий вывод

введите здесь описание изображения

Теперь мне нужно подсчитать возникновение улучшения "-2,-1,0,..." во всех школах. Итак, у меня есть что-то вроде этого

введите здесь описание изображения

Как я могу этого добиться?

Спасибо,


person Hammad    schedule 08.05.2016    source источник
comment
Google: условная агрегация   -  person sagi    schedule 08.05.2016
comment
@sagi, не могли бы вы расширить свой комментарий - это интересный вопрос - я не думаю, что ответ на него тривиален: если ответ так же прост, как поиск в Google, не могли бы вы указать точный URL.   -  person whytheq    schedule 10.05.2016


Ответы (1)


Вы должны добавить еще одно измерение «Улучшение», которое содержит возможные значения для фиксированного диапазона, например. -10..+10 или вы строите диапазон динамически на основе ваших данных.

Добавьте в куб вторую группу мер на основе этой таблицы измерений и создайте меру «Основа улучшения», которая суммирует значение улучшения. Это вспомогательная мера для упрощения следующих шагов.

Теперь вы можете создать новую вычисляемую меру:

CREATE MEMBER CURRENTCUBE.[Measures].[Count Improvements] AS
SUM(IIF([Measures].[Improvement] = [Measures].[Improvement base], 1, 0));

Возможно, вам придется охватить все элементы измерения «Улучшение», чтобы суммировать дочерние элементы.

person Michael Schröder    schedule 11.05.2016
comment
Во-первых, спасибо за поддержку в этой теме. Я начал выполнять эти шаги. Но после того, как я создам базовую меру улучшения. решение не удалось построить как MeasureGroup [SchoolCube]. [Улучшение]: отношения измерений не существуют. Группа мер «Улучшение» не связана ни с одним параметром. Я не мог связать базу улучшений с моими размерами. Спасибо, - person Hammad; 26.05.2016
comment
Если вы откроете конструктор кубов, вы сможете найти использование измерений на второй вкладке конструктора. Вы должны связать свою группу мер «Улучшение» (перечислено в столбцах) с вашим измерением «Улучшение» (которое вы найдете в строках). На пересечении вашего измерения и группы мер есть либо текстовое поле с описанием вашей ссылки, либо серое поле. В последнем случае нажмите кнопку с многоточием справа от серого поля, чтобы создать новую связь между измерением и группой мер. - person Michael Schröder; 30.05.2016
comment
Если и ваше измерение, и группа мер используют точно одну и ту же таблицу или представление (или даже запрос), вы можете выбрать фактическую связь, в противном случае выберите обычную связь и выберите правильный атрибут (обычно ключевой атрибут вашего измерения) и правильный столбец фактов. - person Michael Schröder; 30.05.2016