Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

MDX Comptage dans le temps sans hiérarchie spécifique

J'ai eu un problème similaire et je l'ai résolu comme suit :

SSAS ne peut pas vraiment vous dire sur quelle hiérarchie vous vous trouvez, vous ne pouvez donc pas le faire aussi simplement que dans votre exemple. cependant, ce qui suit a fonctionné pour moi. J'ai essayé de le retravailler à votre nom, alors vérifiez les erreurs de syntaxe évidentes...

Tout cela va dans votre script de calcul de cube, vous devrez peut-être utiliser 'script view' au lieu de 'block view'.

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

Définissez-le ensuite plus tard dans le script pour chaque hiérarchie :

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;

Maintenant, il se comportera en conséquence, en fonction de la hiérarchie présente dans la requête. Notez qu'il sera NULL si aucune hiérarchie n'est dans la requête.