Коррелированный подзапрос в SQL
У меня есть две таблицы: таблица A и таблица B
Таблица A и Таблица B оба имеютRowId
колонка.Таблица A и Таблица B оба имеютModifiedAt
колонка.Также в таблице A есть столбецKey
.Проверьте условия:
Получить RowId из таблицы A, если таблица A 'Key' = someconstantВозьмите те извлеченные идентификаторы строк изTable A
и проверьте, еслиModifiedAt
поле этих строк -> поле ModifiedAT таблицы B с теми же rowId.ТаблицаB
нет повторений RowId, но таблицаA
делает.
Что я попробовал самостоятельно:
select *
from dbo.ResultsStored rs
WHERE HashedKey = hashbytes('MD5', @StringConcat)
and
rs.ModifiedAT > (select Max(ModifiedAt)
from dbo.Patients P
where P.RowId = rs.RowId)
Примечание: Кроме того, меня удивляет, если я заменюrs.RowId
с жестко закодированным значением, скажем «1», это работает, но не так.
Результаты, когда я жестко закодировал rs.RowId:
if not exists (select * from dbo.ResultsStored RS where RS.HashedKey = 0xBBE4D4DC92C713756E6683ADD671F7DA and ModifiedAt > (select ModifiedAt from dbo.Patients where RowId = 1))
begin
print'not exists'
end
else
begin
print 'exists'
end
ВЫХОД : не существует
if not exists (select * from dbo.ResultsStored RS where RS.HashedKey = 0xBBE4D4DC92C713756E6683ADD671F7DA and ModifiedAt > (select ModifiedAt from dbo.Patients where RowId = rs.RowId))
begin
print'not exists'
end
else
begin
print 'exists'
end
OUTPUT
: существует
Ожидаемый результат : не существует
Могу ли я получить помощь по этому вопросу?