首先,SSAS非常新。但我想要完成的事情似乎相当微不足道(我希望)。
我有第二个发生的交易数据。我创造了两个时间维度。一个维度基于使用时间维度向导的标准时间维度。另一个是由我自己的脚本生成的时间维度,其中我每天都有一个记录。
我已将我的事实表与我的维度相关联,并正确部署了我的多维数据集。在我的事实数据中,其中一个属性是价格。现在使用min和max我已经能够获得在特定时间段内发生的最高价格和最低价格。我想要获得的是一段时间内发生的第一个和最后一个价格。我尝试过使用“第一个值”和“最后一个值”,但返回的内容不正确,似乎是某种聚合。
所以举个例子。如果我超过1分钟的价格是:
1233,1233.85,1300,1250
首先应该返回,1233和最后应该返回1250.这应该适用于所有时间段。
要添加,对于我的自定义时间维度,我已尝试将其类型设置为“时间”,但结果保持不变。我很感激任何建议。我基本上希望获得底层和最后一个值的第一个值。
让我了解其中一部分的示例查询:
SELECT NON EMPTY
{ [Measures].[High]
, [Measures].[Low]
, [Measures].[Price Count]
, [Measures].[Price]
} ON COLUMNS
, NON EMPTY
{ [Dim Date].[Year - Week - Date].[Date].ALLMEMBERS
* HEAD( [Dim Time].[Hour - Second].[Second].ALLMEMBERS )
} ON ROWS
FROM [Cube]
请注意,价格计数列有多条记录。我需要来自这里的第一条记录我不想要实际的总和。
答案 0 :(得分:0)
尝试创建一个新度量,获取时间维度第一秒的Price。例如,如果您想要当天的第一秒,那么您在行上的交叉连接中不需要它,但是您可以在计算的度量内获得[Hour - Second]层次结构的第一秒:
with
member [Measures].[First Price] as
(head(descendants([Dim Time].[Hour - Second].CurrentMember, Second)), [Measures].[Price])
select
non empty {
[Measures].[High],
[Measures].[Low],
[Measures].[Price Count],
[Measures].[Price]
} on columns,
{
[Dim Date].[Year - Week - Date].[Date].ALLMEMBERS
} on rows
from
[Cube]
如果您希望时间段较小,例如按小时计算,例如:
non empty {
[Dim Date].[Year - Week - Date].[Date].ALLMEMBERS * [Dim Time].[Hour - Second].[Hour]
} on rows