Общее количество записей в таблице gym_membercommon составляет 40352.
Общее количество записей для арендатора 3 составляет 10250.
В таблице gym_membercommon мне нужно найти все дубликаты записей, которые имеют любое число, общее для этого арендатора.
create table #temp
(
meco_Commonid int,
meco_tenantid int,
meco_OfficeTelno varchar(30),
meco_HomeNo varchar(20),
meco_MobileNo varchar(20),
meco_Fax varchar(20)
)
CREATE CLUSTERED INDEX idxCL_TEMP ON #temp(meco_Commonid)
CREATE NONCLUSTERED INDEX idxNC_TEMP ON #temp(meco_OfficeTelno,meco_HomeNo,meco_MobileNo,meco_Fax)
insert into #temp
select
meco_Commonid,
meco_tenantid,
meco_OfficeTelno,
meco_HomeNo,
meco_MobileNo,
meco_Fax
from gym_membercommon a
where
meco_tenantId = 1
And
lower(ltrim(rtrim(meco_status))) <> 'erroneous'
Select distinct a.*
from #temp a
inner join #temp b
on
(
(ltrim(rtrim(isnull(a.meco_officeTelno,''))) <>'' and a.meco_officeTelno in (b.meco_OfficeTelno,b.meco_HomeNo,b.meco_MobileNo,b.meco_Fax)) or
(ltrim(rtrim(isnull(a.meco_HomeNo,''))) <>'' and a.meco_HomeNo in (b.meco_OfficeTelno,b.meco_HomeNo,b.meco_MobileNo,b.meco_Fax)) or
(ltrim(rtrim(isnull(a.meco_MobileNo,''))) <>'' and a.meco_MobileNo in (b.meco_OfficeTelno,b.meco_HomeNo,b.meco_MobileNo,b.meco_Fax)) or
(ltrim(rtrim(isnull(a.meco_Fax,''))) <>'' and a.meco_Fax in (b.meco_OfficeTelno,b.meco_HomeNo,b.meco_MobileNo,b.meco_Fax))
)
and a.meco_Commonid <> b.meco_commonid
And a.meco_tenantId = 1
В ожидании вашего ответа
спасибо заранее.
Дашарат Ядав
Фитнес-сила