0

我有一个视图列出了特定阻尼器打开的时间(在制造环境中)。我仅限于查询此视图。基本上,数据如下所示:

dateTime      value
9/1/15 0:01      1
9/1/15 0:10      0
9/1/15 1:10      1
9/1/15 2:00     NULL
9/1/15 3:01      0

我需要找到每次打开阻尼器(1)并确定它何时关闭(0)。我们假设的空值是开放的(与 1 相同)。

找到 value = 1 然后是 1 之后的下一个 0 的每个条目的最佳方法是什么?

它是一个 Historian DB,但它基本上在几乎所有方面都模仿 SQL。

4

1 回答 1

0

这是最终起作用的代码 - 供后代使用。:)

SELECT DateTime, Value, 
(SELECT TOP (1) hClose.dateTime FROM history hClose WHERE
hClose.dateTime > history.DateTime 
AND hClose.TagName = 'TAGNAMEHERE' 
AND hClose.Value < 10 
AND wwRetrievalMode = 'average'
AND wwResolution = 600000
ORDER BY dateTime) as closeTime
FROM history 
WHERE dateTime BETWEEN '9/1/15 00:00' AND '10/1/15 0:00'
AND tagName = 'TAGNAMEHERE'
AND (VALUE > 10 OR VALUE IS NULL)
AND wwRetrievalMode = 'average'
AND wwResolution = 60000
于 2015-11-05T22:06:04.990 回答