Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

MDX Count über die Zeit ohne spezifische Hierarchie

Ich hatte ein ähnliches Problem und habe es wie folgt gelöst:

SSAS kann Ihnen nicht wirklich sagen, in welcher Hierarchie Sie sich befinden, daher können Sie dies nicht so einfach wie in Ihrem Beispiel tun. Folgendes hat jedoch bei mir funktioniert. Ich habe versucht, es an Ihre Benennung anzupassen, also suchen Sie nach offensichtlichen Syntaxfehlern...

Das geht alles in Ihr Skript zur Cube-Berechnung, Sie müssen möglicherweise 'Skriptansicht' anstelle von 'Blockansicht' verwenden.

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

Definieren Sie es dann später im Skript für jede Hierarchie:

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;

Jetzt verhält es sich entsprechend, abhängig von der in der Abfrage vorhandenen Hierarchie. Beachten Sie, dass es NULL ist, wenn keine Hierarchie in der Abfrage enthalten ist.