Чтобы уточнить заголовок, в операторе select в предложении where мне нужно проверить таблицу, в которой я делаю, используя другой выбор.В этом втором выборе, я должен найти все дополнительные идентификаторы.Вот что я разработал до сих пор
Declare @id INT
--inserting values in temp table
SELECT
rn = ROW_NUMBER() OVER (ORDER BY adt_trl_dt_tm),
*
INTO #Temp
FROM dbo.EVNT_HSTRY
ORDER BY adt_trl_dt_tm DESC
--Searching for items that are deleted and have not been restored
SELECT *
FROM dbo.EVNT_HSTRY hstry
WHERE evnt_hstry_cd LIKE '3' and
adt_trl_dt_tm > (SELECT adt_trl_dt_tm FROM dbo.EVNT_HSTRY WHERE evnt_id = evnt_id
DROP TABLE #Temp
Чтобы пояснить код, evnt_id
- это внешний ключ.Первичный ключ - evnt_Hstry_id
.evnt_hstry_cd
3 означает удаленный.Я пытаюсь выяснить, является ли поле adt_trl_dt_tm
(последняя измененная дата) считываемой строки самым последним, сравнив его со всеми полями adt_trl_dt_tm
, которые имеют одинаковый evnt_id
.
Таблица, в которой я делаю выбор, является таблицей, в которой мы храним историю событий.Именно здесь мы говорим, когда событие было добавлено, изменено, удалено и / или восстановлено.
К сожалению, я не могу сделать это в своем приложении, поскольку этот оператор выполняется в SSIS.
В целом, мне нужно сравнить adt_trl_dt_tm
с другими adt_trl_dt_tm
, которые имеют тот же evnt_id
, и выбрать самый последний.