SSAS - 日期维度在不合适的地方显示未来值

Posted

技术标签:

【中文标题】SSAS - 日期维度在不合适的地方显示未来值【英文标题】:SSAS - Date Dimension showing future values where not appropriate 【发布时间】:2012-03-30 14:09:48 【问题描述】:

我正在建模一个包含库存数据的多维数据集。为简单起见,我们试图保持一个日期维度。其中一些措施包含库存水平。

最终用户正在使用 Excel 查看来自分析服务的数据。我想要做的是阻止这个维度显示实际股票交易结束的值。

多维数据集中还有其他需要未来信息的度量,因此不允许删除未来的所有日期条目。

一个简化的示例度量:

CREATE [Measures].[Quantity On Hand];
SCOPE ([Measures].[Quantity On Hand]); 
    this = Aggregate(null:[Transaction Date].[Year - Quarter - Month].CurrentMember,  [Measures].[Quantity Purchased])
            - Aggregate(null:[Transaction Date].[Year - Quarter - Month].CurrentMember,  [Measures].[Quantity Sold]) 
    FORMAT_STRING(this) = "#,#.00;-#,#.00; ";
END SCOPE;

日期维度包含未来日期。

我可以让[Transaction Date] 维度在此度量中的最后一个事务(事实表中的最高事务日期)之后停止显示信息吗?

【问题讨论】:

【参考方案1】:

您应该可以使用CLOSINGPERIOD(Dim,Measure) 函数。它将显示使用 Measure 的时间维度上的最后一个成员。在您的情况下,是 Quantity Purhased 或 Quantity Sold 的最后一个条目。将此用作检查以不计算未来日期。

此外,如果您-从不-加载任何未来日期,您还可以使用“今天”作为不加载未来日期的检查:StrToMember("[Time].[Day].&[" + Format(Now(), "yyyyMMdd") + "]") - 其中yyyyMMdd 是您在日级别上使用的格式。

【讨论】:

以上是关于SSAS - 日期维度在不合适的地方显示未来值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SSAS 多维中显示实际上没有值的维度成员?

SSAS - 日期维度将错误的日期与层次结构联系起来

SSAS - 是不是可以在不重新部署整个多维数据集的情况下将属性添加到现有维度

如何定义维度在 ssas 中使用的连接

SSAS 中的非日期角色扮演维度

SSAS 2012 使用维度值过滤其他维度表