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 - 日期维度在不合适的地方显示未来值的主要内容,如果未能解决你的问题,请参考以下文章