2010-08-18 2 views
1

현재 및 미래의 월에만 적용되는 SSAS에서 계산을 수행해야합니다 (사용 가능한 데이터를 사용하여 소급 적용 할 수 없음).Sql Analysis Services 현재 날짜

나는

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; 

나는 (그 형식) 현재의 달에 201,008을 대체 할 ... 다음과 같이 오늘의 달을 달력 계층 구조를 사용하여 하드 코딩하여이 작업을 수행 할 수 있습니다.

아이디어가 있으십니까?

답변

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

그래, 그렇게해야합니다. VBA를 사용하여 멤버 이름과 일치하는 문자열을 만든 다음 문자열을 집합으로 변환합니다. –

+0

성능상의 이유로 Now() 대신 Date()를 사용하는 것이 더 좋습니다 .Chris Webb은 여기에 이유를 설명합니다 - http://cwebbbi.wordpress.com/2009/09/10/now-and-the-formula-cache /. – Jeganinfo