Имах подобен проблем и го реших по следния начин:
SSAS не може наистина да ви каже на коя йерархия се намирате, така че не можете да направите това толкова просто, колкото във вашия пример. обаче следното работи за мен. Опитах се да го преработя според вашето именуване, така че проверете за очевидни синтактични грешки...
Всичко това влиза в скрипта ви за изчисляване на куба, може да се наложи да използвате „изглед на скрипт“ вместо „изглед на блок“.
CREATE MEMBER CURRENTCUBE.[Measures].[Commitment Total] AS NULL;
След това го дефинирайте по-късно в скрипта за всяка йерархия:
SCOPE (DESCENDANTS([Date Dim].[FY Hierarchy],,AFTER));
[Measures].[Commitment Total] =
sum(
[Date Dim].[FY Hierarchy].[Fiscal Year].members(0):[Date Dim].[FY Hierarchy].currentMember
, [Measures].[Commitment Count]);
END SCOPE;
SCOPE (DESCENDANTS([Date Dim].[CY Hierarchy],,AFTER));
[Measures].[Commitment Total] =
sum(
[Date Dim].[CY Hierarchy].[Calendar Year].members(0):[Date Dim].[CY Hierarchy].currentMember
, [Measures].[Commitment Count]);
END SCOPE;
Сега той ще се държи съответно в зависимост от йерархията, присъстваща в заявката. Обърнете внимание, че ще бъде NULL, ако нито една йерархия не е в заявката.