1

我有一个 SSAS Cube,它跟踪仓库中物品的移动。项目被扫描到不同的位置,因此,我们有一个项目被扫描的日期和时间 (HH:MM:SS)。我们希望能够创建一个计算度量,它不是在事实表上预定义的,因为我们希望它是动态的,基于查询被切片的属性。

所以,为了适应这种情况,我想我会创建一个 SET ,它具有有效日期和有效时间的交集,如下所示:

WITH SET [Valid Date]
AS FILTER([WMSR Date].[Full Date].[Full Date].MEMBERS,[Measures].[Fact Scans Count]>0)

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

所以,如果我运行这个:

SELECT {[Measures].[Fact Scans Count]} ON COLUMNS,
[Valid Time] ON ROWS
FROM
    WarehouseCube
WHERE
    [Piece].[Dim ID Key].&[1127981]

对于给定的项目,它将为我提供扫描的日期/时间和计数。如何从上一行获取日期/时间?

提前致谢!

4

1 回答 1

0

你可以使用

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

Rank函数返回一个元组在一个集合中的位置。该Item函数在集合中的某个位置返回一个元组。由于Rank第一项返回 1,而第一项Item期望为 0,并且您想返回一个位置,则需要减去 2。

于 2013-10-17T16:51:26.943 回答