Я пытаюсь выполнить запрос ниже, но я получаю сообщение об ошибке, когда подзапрос пытается вернуть значение, в котором условия не существуют.SQL Subquery Return Null, если данные не совпадают с условием
Может ли кто-нибудь просить простейший способ принудительно вернуть значение по умолчанию, если условие where в подзапросе возвращается пустым.
У меня ошибка, когда я использую дату, когда данные не были записаны, и это дает мне ошибку и выход.
Я пытаюсь получить данные для некоторого анализа R.
использование Продолжительность
SELECT ah1.DateTime,ah1.Value as TPH,
(select value
from dbo.AnalogHistory
where tagname = 'CR_CR001_SPEED.PVAI'
and datetime = ah1.DateTime
) as CR_SPEED,
(select value
from dbo.AnalogHistory
where tagname = 'CR_CR001_MOTOR_I.PVAI'
and datetime = ah1.DateTime
) as EM_Current,
(select value
from dbo.AnalogHistory
where tagname = 'CR_TE741023G.PVAI'
and datetime = ah1.DateTime
) as EM_NDE,
(select value
from dbo.AnalogHistory
where tagname = 'CR_TE741023H.PVAI'
and datetime = ah1.DateTime
) as EM_DE
FROM [Runtime].[dbo].[AnalogHistory] ah1
where TagName = 'CR_WQI752010.PVAI'
and wwResolution = '600000'
and DateTime > '20160816'
and wwRetrievalMode = 'cyclic'
Если ваша проблема в том, что у вас нет результирующего набора, так как 'DateTime>«20160816'' не возвращает никаких результатов, вы будете иметь, чтобы использовать 'IF EXISTS (SELECT 1 FROM myTable WHERE) BEGIN ... (мой запрос, если есть результаты) ... END ELSE BEGIN ... (мой запрос, если нет набора результатов) ... END' –
ZLK
Привет, ZLK, Другой запрос возвращает как ожидается, с интервалом в 10 минут и будет работать около 20 секунд, а затем сбой с ошибкой данных, обнаруженной на CR_TE741023H, не найденной из-за корреляции по дате. Это связано с периодом времени, когда данные не собирались из-за проблем с сообщением. – GlenCloncurry
Какую ошибку вы на самом деле получаете? – ZLK