Sql server 在WonderWare中使用子查询选择所有标记

Sql server 在WonderWare中使用子查询选择所有标记,sql-server,wonderware,Sql Server,Wonderware,我试图从WonderWare historian数据库中获取数据库中所有标记的数据。已经有一个包含所有标记的表,所以我想使用子查询来选择所有标记名。我在这个子查询中得到一个错误 我的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

我试图从WonderWare historian数据库中获取数据库中所有标记的数据。已经有一个包含所有标记的表,所以我想使用子查询来选择所有标记名。我在这个子查询中得到一个错误

我的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'
我猜这意味着它没有被正确执行

我也尝试过使用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')
)
尝试:


Historian Server不是普通的SQL Server数据库。它的历史视图从INSQL链接服务器获取数据。INSQL有一些特殊的规则记录在HistorianConcepts.pdf中

SELECT 
    *
FROM
    Runtime.dbo.Tag t
INNER REMOTE JOIN 
    Runtime.dbo.AnalogHistory h
ON 
    t.TagName = h.TagName
WHERE
    DateTime >= '2016-01-01 00:00'
AND
    DateTime < '2016-01-01 00:30'
AND
    wwResolution = 5000
AND
    wwRetrievalMode = 'Average'
AND
    wwTimeStampRule = 'Start'
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
SELECT 
    *
FROM
    Runtime.dbo.Tag t
INNER REMOTE JOIN 
    Runtime.dbo.AnalogHistory h
ON 
    t.TagName = h.TagName
WHERE
    DateTime >= '2016-01-01 00:00'
AND
    DateTime < '2016-01-01 00:30'
AND
    wwResolution = 5000
AND
    wwRetrievalMode = 'Average'
AND
    wwTimeStampRule = 'Start'