2010-08-18 5 views
1

Je dois effectuer un calcul dans SSAS qui ne s'applique qu'aux mois en cours et futurs (il ne peut pas être appliqué rétrospectivement en utilisant les données disponibles).Sql Analysis Services Date actuelle

je peux le faire en utilisant la hiérarchie civile et le codage dur du mois d'aujourd'hui comme suit ...

SCOPE([Measures].[RollingStock]);   
    ([Dim Date].[Calendar].[Month].&[201008]:NULL) = 
    ([Measures].[Quantity On Hand] 
    - [Measures].[SO Open Quantity] 
    + [Measures].[PO Open Quantity] 
    - [Measures].[Forecasts Quantity]);   
END SCOPE; 

Je veux remplacer 201008 le mois en cours (dans ce format).

Des idées?

Répondre

3
CREATE SET CURRENTCUBE.[Current And Future Months] 
AS { 
StrToMember("[Dim Date].[Calendar].[Month].&[" + Format(now(), "yyyyMM") + "]"):NULL 
} 
+1

Oui, cela devrait le faire. Utilisez VBA pour créer une chaîne qui correspond au nom du membre, puis convertissez la chaîne en ensemble. –

+0

Il est préférable d'utiliser Date() au lieu de Now() pour des raisons de performance.Chris Webb explique la raison ici - http://cwebbbi.wordpress.com/2009/09/10/now-and-the-formula-cache /. – Jeganinfo

Questions connexes