Вычисляемый элемент на основе значения атрибута измерения
Я хочу создать в моем кубе вычисляемые меры, которые условно используют значение из таблицы мер на основе значения атрибута измерения.
Например: если "Статус документа" в измерении "Документ" - это 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], а не иначе. Очень мощное утверждение, и вы должны получить то, что вам нужно.