我试图从WonderWare历史学家数据库中获取数据库中所有标记的数据。已经有一个包含所有标记的表,所以我想使用一个子查询来选择所有的标记名。我得到一个错误w.r.t这个子查询。
我的sql语句:
/******
I want to be able to select:
- all columns
- for all tags <-- I'm getting an error here, trying to use a subquery
- between two time stamps
- at a specified resolution
******/
SELECT *
FROM
Runtime.[dbo].AnalogHistory
WHERE
TagName IN (
SELECT DISTINCT TagName
FROM
Runtime.dbo.Tag
)
AND
DateTime >= '2016-01-01 00:00'
AND
DateTime < '2016-01-01 00:30'
AND
wwResolution = 5000
AND
wwRetrievalMode = 'Average'
AND
wwTimeStampRule = 'Start'
我收到的错误如下:
OLE DB provider "INSQL" for linked server "INSQL" returned message "History queries must contain at least one valid tagname".
我猜这意味着它没有被正确地执行。
我也尝试过使用openquery,但随后我得到了与子查询相关的其他错误,无法识别有关标记表的“模式”信息:
OLE DB provider "INSQL" for linked server "INSQL" returned message "Failed to retrieve schema information for object 'Tag'".
以下是修改后的节选:
TagName IN ( SELECT * FROM OPENQUERY(INSQL,
'SELECT DISTINCT TagName
FROM
Runtime.dbo.Tag')
)
发布于 2017-02-18 20:17:30
尝试:
SELECT DISTINCT aa.TagName FROM (
SELECT DateTime, TagName, Value
FROM History
WHERE DateTime >= '2016-01-01 00:00'
AND DateTime <= '2016-01-01 00:30'
AND wwResolution = 5000
AND wwRetrievalMode = 'Average'
AND wwTimeStampRule = 'Start'
) aa
https://stackoverflow.com/questions/39722059
复制相似问题