Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

MDX Преброяване във времето без конкретна йерархия

Имах подобен проблем и го реших по следния начин:

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, ако нито една йерархия не е в заявката.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчислете работното време между две дати

  2. Как да изберете за неизползвани кодове в тази проба

  3. Общ табличен израз, защо точка и запетая?

  4. Обединяване на две таблици / свързване на стойности в една колона

  5. CHECKSUM и CHECKSUM_AGG:Какъв е алгоритъмът?