Miałem podobny problem i rozwiązałem go w następujący sposób:
SSAS nie może tak naprawdę powiedzieć, w jakiej hierarchii się znajdujesz, więc nie możesz tego zrobić tak prosto, jak w twoim przykładzie. jednak działały dla mnie następujące. Próbowałem przerobić to na twoje nazewnictwo, więc sprawdź, czy nie ma oczywistych błędów składni...
To wszystko dzieje się w skrypcie obliczania kostki, może być konieczne użycie „widoku skryptu” zamiast „widoku blokowego”.
CREATE MEMBER CURRENTCUBE.[Measures].[Commitment Total] AS NULL;
Następnie zdefiniuj go później w skrypcie dla każdej hierarchii:
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;
Teraz będzie zachowywał się odpowiednio, w zależności od hierarchii obecnej w zapytaniu. Zwróć uwagę, że jeśli w zapytaniu nie ma żadnej hierarchii, będzie to NULL.