Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

MDX Conteggio nel tempo senza gerarchia specifica

Ho avuto un problema simile e l'ho risolto come segue:

SSAS non può davvero dirti in quale gerarchia ti trovi, quindi non puoi farlo semplicemente come nel tuo esempio. tuttavia, quanto segue ha funzionato per me. Ho provato a rielaborarlo sulla tua denominazione, quindi controlla gli errori di sintassi evidenti...

Tutto questo va nello script di calcolo del cubo, potresti dover utilizzare 'vista script' invece di 'vista blocco'.

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

Quindi definiscilo più avanti nello script per ciascuna gerarchia:

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;

Ora si comporterà di conseguenza, a seconda della gerarchia presente nella query. Nota che sarà NULL se nessuna delle gerarchie è nella query.