【问题标题】:Sql Analysis Services Current DateSql 分析服务当前日期
【发布时间】:2010-08-18 12:27:54
【问题描述】:

我需要在 SSAS 中执行仅适用于当前和未来月份的计算(不能使用可用数据追溯应用)。

我可以通过使用日历层次结构和硬编码今天的月份来做到这一点,如下所示......

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; 

我想将 201008 替换为当前月份(采用该格式)。

有什么想法吗?

【问题讨论】:

    标签: mdx ssas calculated-field


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

    【讨论】:

    • 是的,应该这样做。使用 VBA 创建一个与成员名称匹配的字符串,然后将该字符串转换为一个集合。
    • 出于性能原因,最好使用 Date() 而不是 Now()。Chris Webb 在这里解释了原因 - cwebbbi.wordpress.com/2009/09/10/now-and-the-formula-cache
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多