嵌套SELECT作为字段列表的一部分

时间:2015-10-20 21:01:35

标签: sql-server-2008 historian

我有一个视图,列出特定阻尼器打开的时间(在制造环境中)。我只能查询这个观点。基本上,数据看起来像这样:

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。

1 个答案:

答案 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