SSAS, почему оператор SCOPE работает для вычисляемого члена, но не для измерения?
В приведенных ниже примерах первый объект представляет собой меру NULL, которая имеет 2 оператора SCOPE, один из которых определяет основную логику, а другой должен делать меру NULL при разрезании атрибутом "Cohort Retention LQ Code". В настоящее время показатель всегда показывает NULL. Однако, когда я создаю вычисляемый элемент и использую ту же логику SCOPE, вычисляемый элемент ведет себя как ожидалось.
Вопрос: Почему одна и та же логика SCOPE ведет себя по-разному для меры против вычисляемого элемента? Также стоит отметить, что мера будет отображать данные, если я исключу второй оператор SCOPE.
//6 Year Graduation Rate is a measure within one of the cubes measure groups and has relationships with all the referenced dimensions/attributes
SCOPE([Measures].[6 Year Graduation Rate]);
THIS= IIF(AGGREGATE(([Cohort Retention LQ Code].&[24], [Cohort Retention Type Descr].&[LQ1 Census], {[Cohort Retention Degree Level Code].&[18], [Cohort Retention Degree Level Code].&[13], [Cohort Retention Degree Level Code].&[GC], [Cohort Retention Degree Level Code].&[UC], [Cohort Retention Degree Level Code].&[17]}), [Measures].[Cohort Retention Count])= 0,
NULL,
AGGREGATE(([Cohort Retention LQ Code].&[24], [Cohort Retention Type Descr].&[LQ1 Census], {[Cohort Retention Degree Level Code].&[18], [Cohort Retention Degree Level Code].&[13], [Cohort Retention Degree Level Code].&[GC], [Cohort Retention Degree Level Code].&[UC], [Cohort Retention Degree Level Code].&[17]}), [Measures].[Cohort Graduated Count]) /
AGGREGATE(([Cohort Retention LQ Code].&[24], [Cohort Retention Type Descr].&[LQ1 Census], {[Cohort Retention Degree Level Code].&[18], [Cohort Retention Degree Level Code].&[13], [Cohort Retention Degree Level Code].&[GC], [Cohort Retention Degree Level Code].&[UC], [Cohort Retention Degree Level Code].&[17]}), [Measures].[Cohort Retention Count])
);
FORMAT_STRING(THIS)= "Percent";
END SCOPE;
SCOPE (DESCENDANTS([Cohort Retention LQ].[Cohort Retention LQ Code],,AFTER));
[Measures].[6 Year Graduation Rate]= NULL;
END SCOPE;
//6 Year Graduation Rate Test is a calculated member
CREATE MEMBER CURRENTCUBE.[Measures].[6 Year Graduation Rate Test]
AS NULL,
FORMAT_STRING = "Percent",
VISIBLE = 1, DISPLAY_FOLDER = 'Proxy Cohort';
SCOPE([Measures].[6 Year Graduation Rate Test]);
THIS= IIF(AGGREGATE(([Cohort Retention LQ Code].&[24], [Cohort Retention Type Descr].&[LQ1 Census], {[Cohort Retention Degree Level Code].&[18], [Cohort Retention Degree Level Code].&[13], [Cohort Retention Degree Level Code].&[GC], [Cohort Retention Degree Level Code].&[UC], [Cohort Retention Degree Level Code].&[17]}), [Measures].[Cohort Retention Count])= 0,
NULL,
AGGREGATE(([Cohort Retention LQ Code].&[24], [Cohort Retention Type Descr].&[LQ1 Census], {[Cohort Retention Degree Level Code].&[18], [Cohort Retention Degree Level Code].&[13], [Cohort Retention Degree Level Code].&[GC], [Cohort Retention Degree Level Code].&[UC], [Cohort Retention Degree Level Code].&[17]}), [Measures].[Cohort Graduated Count]) /
AGGREGATE(([Cohort Retention LQ Code].&[24], [Cohort Retention Type Descr].&[LQ1 Census], {[Cohort Retention Degree Level Code].&[18], [Cohort Retention Degree Level Code].&[13], [Cohort Retention Degree Level Code].&[GC], [Cohort Retention Degree Level Code].&[UC], [Cohort Retention Degree Level Code].&[17]}), [Measures].[Cohort Retention Count])
);
FORMAT_STRING(THIS)= "Percent";
END SCOPE;
SCOPE (DESCENDANTS([Cohort Retention LQ].[Cohort Retention LQ Code],,AFTER));
[Measures].[6 Year Graduation Rate Test]= NULL;
END SCOPE;