USP_SEARCHLIST_PROSPECTRESEARCHBATCHINDIVIDUALDUPLICATELOOKUPID
Search for Duplicate Individuals in Prospect Research batches by Lookup ID.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PRIMARYRECORDID | uniqueidentifier | IN | Constituent |
@LOOKUP_ID | nvarchar(100) | IN | Lookup ID |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
Definition
Copy
CREATE procedure dbo.USP_SEARCHLIST_PROSPECTRESEARCHBATCHINDIVIDUALDUPLICATELOOKUPID
(
@PRIMARYRECORDID uniqueidentifier = null,
@LOOKUP_ID nvarchar(100) = null,
@MAXROWS smallint = 500
)
as
set nocount on;
-- Ignore search when a constituent has been selected.
if @PRIMARYRECORDID is null
begin
with LOOKUPIDS_CTE as (
select top(@MAXROWS)
C.ID ID,
'Lookup ID' LOOKUPIDTYPE,
C.LOOKUPID LOOKUPID
from
dbo.CONSTITUENT C
where
LOOKUPID = @LOOKUP_ID and ISORGANIZATION = 0 and ISGROUP = 0
union all
select top(@MAXROWS)
C.ID,
ALTC.DESCRIPTION,
AL.ALTERNATELOOKUPID
from
dbo.ALTERNATELOOKUPID AL
inner join
dbo.CONSTITUENT C on C.ID = AL.CONSTITUENTID and C.ISORGANIZATION = 0 and C.ISGROUP = 0
left join
dbo.ALTERNATELOOKUPIDTYPECODE ALTC on ALTC.ID = AL.ALTERNATELOOKUPIDTYPECODEID
where
AL.ALTERNATELOOKUPID = @LOOKUP_ID
), FINAL_CTE as (
select distinct
C.ID ID,
C.NAME NAME,
A.ADDRESSBLOCK ADDRESSBLOCK,
A.CITY CITY,
S.ABBREVIATION STATE,
A.POSTCODE POSTCODE,
LID.LOOKUPIDTYPE LOOKUPIDTYPE,
LID.LOOKUPID LOOKUPID,
C.KEYNAME,
C.FIRSTNAME,
C.DATECHANGED
from
LOOKUPIDS_CTE LID
inner join
dbo.CONSTITUENT C on C.ID = LID.ID
left join
dbo.ADDRESS A on A.CONSTITUENTID = C.ID and A.ISPRIMARY = 1
left join
dbo.STATE S on S.ID = A.STATEID
)
select
ID,
NAME,
ADDRESSBLOCK,
CITY,
STATE,
POSTCODE,
LOOKUPIDTYPE,
LOOKUPID,
100 / coalesce((select count(distinct ID) from FINAL_CTE), 0) MATCHPERCENTAGE,
DATECHANGED
from FINAL_CTE
order by
KEYNAME asc, FIRSTNAME asc;
end