Я пытаюсь получить данные из базы данных архива WonderWare по всем тегам в базе данных. Уже есть таблица, содержащая все теги, поэтому я хотел бы использовать подзапрос для выбора всех имен тегов. Я получаю сообщение об ошибке в этом подзапросе.
Моя инструкция 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')
)