Вычисляемый элемент на основе значения атрибута измерения

Я хочу создать в моем кубе вычисляемые меры, которые условно используют значение из таблицы мер на основе значения атрибута измерения.

Например: если "Статус документа" в измерении "Документ" - это CP, используйте меру "Зафиксированное значение". Вот что у меня есть для этого:

CREATE MEMBER CURRENTCUBE.[Measures].CalcCommittedValue
 AS ([Document].[Document Status].&[CP], [Measures].[Committed Value]), 
FORMAT_STRING = "$#,##0;-$#,##0", 
VISIBLE = 1 ,  ASSOCIATED_MEASURE_GROUP = 'Document Total'  ;   

И похоже, что это работает, пока я не начну просматривать куб и помещать Document Status и CalcCommittedValue в браузер. Все параметры для статуса документа отображают одно и то же CalcCommittedValue.

Спасибо за вашу помощь!

1 ответ

Решение

Чтобы сделать это правильно, попробуйте использовать оператор SCOPE()... например

CREATE MEMBER CURRENTCUBE.[Measures].[CalcCommittedValue]
AS

  SCOPE([Document].[Document Status].[&CP]);

   THIS = [Measures].[Committed Value];

  END SCOPE;

Оператор Scope вызовет вычисление значения всякий раз, когда присутствует статус документа [CP], а не иначе. Очень мощное утверждение, и вы должны получить то, что вам нужно.

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