我有一个视图,列出特定阻尼器打开的时间(在制造环境中)。我只能查询这个观点。基本上,数据看起来像这样:
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相同)。
找到值= 1的每个条目然后在该1之后的下一个0的最佳方法是什么?
它是一个Historian数据库,但它基本上几乎在所有方面都模仿SQL。
答案 0 :(得分: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