Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zliczanie MDX w czasie bez określonej hierarchii

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przenieść tabelę do innej grupy plików w MS SQL Server?

  2. dynamiczne tworzenie tabeli #temp, a następnie wstawianie danych

  3. Problem z liczeniem elementów w T-SQL

  4. Zapytanie SQL do wstawienia daty i godziny w SQL Server

  5. Nie można rzutować obiektu COM typu „System.__ComObject” na typ interfejsu „Microsoft.VisualStudio.OLE.Interop.IServiceProvider”