sql >> Databasteknik >  >> RDS >> Sqlserver

MDX Räkna över tid utan specifik hierarki

Jag har haft ett liknande problem och löste det enligt följande:

SSAS kan inte riktigt berätta vilken hierarki du befinner dig i, så du kan inte göra detta så enkelt som i ditt exempel. men följande fungerade för mig. Jag har försökt att omarbeta det till ditt namn, så kolla efter uppenbara syntaxfel...

Allt detta går i ditt kubberäkningsskript, du kan behöva använda 'script view' istället för 'block view'.

CREATE MEMBER CURRENTCUBE.[Measures].[Commitment Total] AS NULL;

Definiera det sedan senare i skriptet för varje hierarki:

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;

Nu kommer den att bete sig därefter, beroende på den hierarki som finns i frågan. Observera att det blir NULL om ingen av hierarkin finns i frågan.




  1. få tillgång till ett kolumnalias i where-satsen i postgresql

  2. Hur man ansluter localhost phpmyadmin till Android-emulatorn

  3. MySQL:Godkännande av procedurparametrar för att EXECUTE USING-satsen

  4. Få offset av datetimeoffset i SQL Server