Используя оконные функции, вы можете выбрать самую последнюю запись для обновления для каждой комбинации first + last + dob + zip (я предполагаю, что это идентифицирует пациента), например:
;WITH PatientsByDateLastModified AS
(
SELECT *
, ROW_NUMBER() OVER (PARTITION BY FirstName, LastName, DateofBirth, ZipCode
ORDER BY DateLastModified DESC) AS RN
FROM PatientDemographics
)
UPDATE patients
SET patients.custom1 = demo.custom1
FROM PatientsByDateLastModified patients
INNER
JOIN PatientDemo2 demo
ON patients.FirstName = demo.FirstName
AND patients.LastName = demo.LastName
AND patients.DateofBirth = demo.DateofBirth
AND patients.ZipCode = demo.ZipCode
WHERE patients.AccountStatus = 'A'
AND patients.RN = 1 -- this makes sure only the most recent row gets updated