Рассмотрите возможность расширения вашего CTE, добавив предложение JOIN
в external и подзапрос к таблице WeccoPartyAddress с необходимыми предложениями WHERE
.Обратите внимание также на добавленное distinct
, чтобы избежать повторных идентификаторов для возможного отношения один-ко-многим между таблицами.
with dups as (
select distinct p.GtId
from CORE.WeccoParty p
join CORE.WeccoPartyAddress a ON p.GtId = a.GtId
where exists (select 1
from CORE.WeccoParty sub_p
left join CORE.WeccoPartyAddress sub_a
on sub_p.GtId = sub_a.GtId and sub_a.AddressType = 'Mailing'
where (p.FirstName = sub_p.FirstName
and p.LastName = sub_p.LastName
and p.Dob = sub_p.Dob
and p.GtId <> sub_p.GtId)
and a.MailingAddress = sub_a.MailingAddress
and a.GtId <> sub_a.GtId
)
)
И в зависимости от данных и отношений (например, может ли GtId иметь одинаковые биологические данные И / ИЛИтот же почтовый адрес?), который вы бы знали больше, возможно, вам придется настроить вышеуказанный запрос.Это может включать обмен left join
на join
и / или условия WHERE
, такие как:
where (p.FirstName = sub_p.FirstName
and p.LastName = sub_p.LastName
and p.Dob = sub_p.Dob
and p.GtId <> sub_p.GtId)
or
(a.MailingAddress = sub_a.MailingAddress
and a.GtId <> sub_a.GtId)