SQL Server按最近时间排序,然后按最接近时间排序

3

我在这个问题中发布了一些表格。

•Measurements(MeasureID,Time,Distance,Value)

•Events(EventID,Time Value)

•EventValues(EventDataID,EventID,Type,Value)

我目前可以为每个测量获取最新的事件,但我想要做的是获取最新的事件,但如果不存在一个(即测量在第一个事件之前),我想获得最接近的事件(因此基本上是第一个事件)。

我考虑通过按时间差异进行排序,在我的子查询中先显示正时间,然后再显示负时间,这种方法可行吗?如何实现?


把你的表格复制/粘贴到这个问题里太难了吗? - Nick Rolando
不是,但那里的额外信息可能会有用,我认为那是正确的程序。 - Simon
明白了,是我不好。你应该提到 xP。 - Nick Rolando
1个回答

2
我尚未进行测试,但我认为像下面的案例逻辑会起作用。
(SELECT TOP 1 EV.value FROM [Event] E JOIN EventValues EV ON E.EventID = EV.EventID 
  WHERE M.Time >= E.Time 
  ORDER BY case when M.Time > E.Time then 1 else 2 end, 
           abs(M.Time-E.Time)) AS Data

+1 谢谢,我只需要删除 WHERE 子句并在 ABS 函数中使用 DateDiff。 - Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接