0

我正在尝试从 Wonderware Historian 将值引入 SQL,在下面的代码中,它从 StateSummaryHistory 视图中获取值,这是 Historian 客户端的视图,随着 InTouch 中值的变化而更新,我需要我正在做的 SELECT 来返回值,以便我传递给 ReportBuilder。

SET NOCOUNT ON
DECLARE @StartDate DateTime
DECLARE @EndDate DateTime
SET @StartDate = '20210521 10:08:51.000'
SET @EndDate = '20210521 11:08:51.000'
SET NOCOUNT OFF
SELECT StateSummaryHistory.TagName, StartDateTime, EndDateTime, Value, vValue
 FROM StateSummaryHistory
 WHERE StateSummaryHistory.TagName IN ('VTIS01_FT04', 'VTIS01_LOG_SUM_VOL', 'VTIS01_M02', 'VTIS01_STEP_NO') AND StateSummaryHistory.TagName = 'VTIS01_STEP_NO' AND Value = 22
 AND Value = 22
 AND wwVersion = 'Latest'
 AND wwRetrievalMode = 'Cyclic'
 AND wwCycleCount = 1
 AND StartDateTime >= @StartDate
 AND EndDateTime <= @EndDate

我需要带的是标签'VTIS01_FT04'、'VTIS01_LOG_SUM_VOL'、'VTIS01_M02'的值,只有当标签'VTIS01_STEP_NO'的值为22时,我试图用LIKE和CASE命令解决它,但它仍然没有工作,有人可以帮我吗?

4

1 回答 1

0

你想如何链接标签?您不能说“当 tag2 等于 22 时检索 tag1 的值”,因为标签是独立的。事实上,它们可以使用不同的标准来保存。没有一对一的关系。您可能希望使用时间戳链接它们。在这种情况下,您需要首先选择等于 22 的 VTIS01_STEP_NO,然后使用该时间戳来选择其余的标签。您必须非常小心,因为其他标签可能没有完全相同的时间戳。实际上,他们不太可能这样做。

于 2021-07-09T00:03:12.253 回答