2013-10-17 112 views
1

我有一个SSAS立方体,用于跟踪仓库中物品的移动。项目被扫描到不同的位置,所以我们有一个日期和时间(HH:MM:SS)表示该项目被扫描。我们希望能够根据查询被切分的属性创建一个计算的度量值,该度量值不是事实表上预先定义的,因为我们希望它是动态的。根据当前行时间与上一行时间之间的差异计算SSAS中的时间间隔

因此,为了适应这一点,我想我会创造出具有有效日期和有效时间的交集,这样的设置:

设置[有效期] 作为过滤([WMSR日期([[Valid Date] * [Time]。[Full Date]。[Full Date] .MEMBERS,[Measures]。[Fact Scans Count]> 0)

SET [Valid Time] AS FILTER [Full Time] .MEMBERS),[Measures]。[Fact Scans Count]> 0)

所以,如果我运行这个:

SELECT {[措施]。[事实扫描计数]} ON COLUMNS, [有效时间] ON ROWS FROM WarehouseCube WHERE [片]。[昏暗ID密钥]。 & [1127981]

它会给我一个给定的项目,扫描的日期/时间和计数。我如何从上一行获取日期/时间?

在此先感谢!

回答

0

你可以使用

[ValidTime].Item(Rank(([WMSR Date].[Full Date].CurrentMember, [Time].[Full Time].CurrentMember), 
         [ValidTime]) 
       - 2 
       ) 

Rank函数返回一个元组的一组中的位置。函数Item从一组中返回一个元组。 由于Rank为第一个项目返回1,而Item期望第一个项目为0,并且您想要返回一个位置,则需要减去两个。

相关问题