Tôi đã gặp sự cố tương tự và đã giải quyết nó như sau:
SSAS thực sự không thể cho bạn biết bạn đang ở hệ thống phân cấp nào, vì vậy bạn không thể làm điều này đơn giản như trong ví dụ của bạn. tuy nhiên, những điều sau đây đã làm việc cho tôi. Tôi đã cố gắng làm lại nó theo cách đặt tên của bạn, vì vậy hãy kiểm tra các lỗi cú pháp rõ ràng ...
Tất cả điều này nằm trong tập lệnh tính toán khối lập phương của bạn, bạn có thể cần sử dụng 'chế độ xem tập lệnh' thay vì 'chế độ xem khối'.
CREATE MEMBER CURRENTCUBE.[Measures].[Commitment Total] AS NULL;
Sau đó, xác định nó sau trong tập lệnh cho từng phân cấp:
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;
Bây giờ nó sẽ hoạt động tương ứng, phụ thuộc vào hệ thống phân cấp có trong truy vấn. Lưu ý rằng nó sẽ là NULL nếu không có phân cấp nào trong truy vấn.