UFN_CONSTITUENTMERGEPROCESS_DETERMINEMOSTCOMPLETENAME
UFN_CONSTITUENTMERGEPROCESS_DETERMINEMOSTCOMPLETENAME
Return
Return Type |
---|
uniqueidentifier |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEID | uniqueidentifier | IN | |
@TARGETID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_CONSTITUENTMERGEPROCESS_DETERMINEMOSTCOMPLETENAME
(
@SOURCEID uniqueidentifier,
@TARGETID uniqueidentifier
)
returns uniqueidentifier
with execute as caller
as begin
declare @MOSTCOMPLETEID uniqueidentifier;
declare @NUMFIELDS_SOURCE integer;
declare @NUMFIELDS_TARGET integer;
declare @NAME_TARGET nvarchar(154);
declare @NAME_SOURCE nvarchar(154);
select
@NAME_SOURCE = NAME,
@NUMFIELDS_SOURCE =
case when LEN(KEYNAME) > 0 then 1 else 0 end
+ case when LEN(KEYNAMEPREFIX) > 0 then 1 else 0 end
+ case when LEN(FIRSTNAME) > 0 then 1 else 0 end
+ case when LEN(MIDDLENAME) > 0 then 1 else 0 end
+ case when LEN(MAIDENNAME) > 0 then 1 else 0 end
+ case when LEN(NICKNAME) > 0 then 1 else 0 end
+ case when TITLECODEID is null then 0 else 1 end
+ case when TITLE2CODEID is null then 0 else 1 end
+ case when SUFFIXCODEID is null then 0 else 1 end
+ case when SUFFIX2CODEID is null then 0 else 1 end
from dbo.CONSTITUENT
where ID = @SOURCEID;
select
@NAME_TARGET = NAME,
@NUMFIELDS_TARGET =
case when LEN(KEYNAME) > 0 then 1 else 0 end
+ case when LEN(KEYNAMEPREFIX) > 0 then 1 else 0 end
+ case when LEN(FIRSTNAME) > 0 then 1 else 0 end
+ case when LEN(MIDDLENAME) > 0 then 1 else 0 end
+ case when LEN(MAIDENNAME) > 0 then 1 else 0 end
+ case when LEN(NICKNAME) > 0 then 1 else 0 end
+ case when TITLECODEID is null then 0 else 1 end
+ case when TITLE2CODEID is null then 0 else 1 end
+ case when SUFFIXCODEID is null then 0 else 1 end
+ case when SUFFIX2CODEID is null then 0 else 1 end
from dbo.CONSTITUENT
where ID = @TARGETID;
if @NUMFIELDS_TARGET > @NUMFIELDS_SOURCE
set @MOSTCOMPLETEID = @TARGETID;
else if @NUMFIELDS_SOURCE > @NUMFIELDS_TARGET
set @MOSTCOMPLETEID = @SOURCEID;
else
-- Equal number of name fields populated...go with the longest
begin
if LEN(@NAME_TARGET) > LEN(@NAME_SOURCE)
set @MOSTCOMPLETEID = @TARGETID;
else
set @MOSTCOMPLETEID = @SOURCEID;
end
return @MOSTCOMPLETEID;
end