UFN_COMPARECONSTITUENTS_3

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@TITLECODE1 uniqueidentifier IN
@FIRSTNAME1 nvarchar(50) IN
@MIDDLENAME1 nvarchar(50) IN
@KEYNAME1 nvarchar(100) IN
@SUFFIXCODE1 uniqueidentifier IN
@STREETNUMBER1 nvarchar(20) IN
@STREETNAME1 nvarchar(150) IN
@POSTCODE1 nvarchar(12) IN
@TITLECODE2 uniqueidentifier IN
@FIRSTNAME2 nvarchar(50) IN
@MIDDLENAME2 nvarchar(50) IN
@KEYNAME2 nvarchar(100) IN
@SUFFIXCODE2 uniqueidentifier IN
@STREETNUMBER2 nvarchar(20) IN
@STREETNAME2 nvarchar(150) IN
@POSTCODE2 nvarchar(12) IN
@COUNTRYID uniqueidentifier IN
@ADDRESSONLY bit IN

Definition

Copy


CREATE function dbo.UFN_COMPARECONSTITUENTS_3 (
  @TITLECODE1 uniqueidentifier,
  @FIRSTNAME1 nvarchar(50),
  @MIDDLENAME1 nvarchar(50),
  @KEYNAME1 nvarchar(100),
  @SUFFIXCODE1 uniqueidentifier,
  @STREETNUMBER1 nvarchar(20),
  @STREETNAME1 nvarchar(150),
  @POSTCODE1 nvarchar(12),
  @TITLECODE2 uniqueidentifier,
  @FIRSTNAME2 nvarchar(50),
  @MIDDLENAME2 nvarchar(50),
  @KEYNAME2 nvarchar(100),
  @SUFFIXCODE2 uniqueidentifier,
  @STREETNUMBER2 nvarchar(20),
  @STREETNAME2 nvarchar(150),
  @POSTCODE2 nvarchar(12),
  @COUNTRYID uniqueidentifier,
  @ADDRESSONLY bit
)
returns @RESULTS table (
  TITLERESULT tinyint,
  FIRSTNAMERESULT tinyint,
  MIDDLENAMERESULT tinyint,
  KEYNAMERESULT tinyint,
  SUFFIXRESULT tinyint,
  STREETNUMBERRESULT tinyint,
  STREETNAMERESULT tinyint,
  POSTCODERESULT tinyint,
  -- scores are included for informational purposes, the results will be what is used to determine matches

  FIRSTNAMESCORE tinyint,
  MIDDLENAMESCORE tinyint,
  KEYNAMESCORE tinyint,
  STREETNUMBERSCORE tinyint,
  STREETNAMESCORE tinyint,
  POSTCODESCORE tinyint,
  -- this constituent is not a match, but the two constituents may be a household

  HOUSEHOLDMATCH bit
)
begin
  -- ******

  -- This function assumes all strings are "clean" per UFN_CLEANCONSTITUENTSTRINGS.

  -- ******


  -- RESULT CODES

  -- ---------------

  -- 0 = Match

  -- 1 = Likely match

  -- 2 = Possible match

  -- 3 = Not a match

  -- 4 = Both blank

  -- 5 = Constituent 1 blank, constituent 2 non-blank

  -- 6 = Constituent 1 non-blank, constituent 1 blank


  declare @LOGICALRESULTMAPPING dbo.UDT_GENERIC_NVARCHAR100_TINYINT;
  insert into @LOGICALRESULTMAPPING
  select CASENAME, RESULTCODE
  from dbo.CONSTITUENTMATCHLOGICALRESULTMAPPING

  insert into @RESULTS 
  select
    TITLERESULT,
    FIRSTNAMERESULT,
    MIDDLENAMERESULT,
    KEYNAMERESULT,
    SUFFIXRESULT,
    STREETNUMBERRESULT,
    STREETNAMERESULT,
    POSTCODERESULT,
    FIRSTNAMESCORE,
    MIDDLENAMESCORE,
    KEYNAMESCORE,
    STREETNUMBERSCORE,
    STREETNAMESCORE,
    POSTCODESCORE,
    HOUSEHOLDMATCH
  from dbo.UFN_COMPARECONSTITUENTS_4 (
    @TITLECODE1,
    @FIRSTNAME1,
    @MIDDLENAME1,
    @KEYNAME1,
    @SUFFIXCODE1,
    @STREETNUMBER1,
    @STREETNAME1,
    @POSTCODE1,
    @TITLECODE2,
    @FIRSTNAME2,
    @MIDDLENAME2,
    @KEYNAME2,
    @SUFFIXCODE2,
    @STREETNUMBER2,
    @STREETNAME2,
    @POSTCODE2,
    @COUNTRYID,
    @ADDRESSONLY,
    0, --@ISORGANIZATION: Used in keyname score used in 'bail' logic. We aren't bailing, so this won't matter

    @LOGICALRESULTMAPPING,
    0 --@BAILTHRESHOLD: Set so we don't bail in '_4' and maintain '_3's behavior

  )

  return;
end