UFN_CONSTITUENT_GETIDSFROMCRITERIA

Gets a list of constituent IDs for constituents who meet the supplied criteria.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@CONSTITUENTLOOKUPID nvarchar(100) IN
@CONSTITUENTKEYNAME nvarchar(50) IN
@CONSTITUENTFIRSTNAME nvarchar(100) IN
@MAXROWS smallint IN

Definition

Copy


CREATE function dbo.UFN_CONSTITUENT_GETIDSFROMCRITERIA(
    @CONSTITUENTID as uniqueidentifier,
    @CONSTITUENTLOOKUPID as nvarchar(100),
    @CONSTITUENTKEYNAME as nvarchar(50),
    @CONSTITUENTFIRSTNAME as nvarchar(100),
    @MAXROWS smallint = 500
)
returns @MATCHINGIDS table (ID uniqueidentifier)
as
begin

    if @CONSTITUENTID is not null begin
        insert into @MATCHINGIDS (ID) values (@CONSTITUENTID)
    end
    else if @CONSTITUENTFIRSTNAME is not null and @CONSTITUENTFIRSTNAME <> '' and
            @CONSTITUENTKEYNAME is not null and @CONSTITUENTKEYNAME <> '' and 
            @CONSTITUENTLOOKUPID is not null and @CONSTITUENTLOOKUPID <> '' begin
        with LOOKUPIDS_CTE as (
            select top(@MAXROWS)
                C.ID ID
            from
                dbo.CONSTITUENT C
            where
                LOOKUPID = @CONSTITUENTLOOKUPID and C.KEYNAME = @CONSTITUENTKEYNAME and 
                C.FIRSTNAME = @CONSTITUENTFIRSTNAME and ISORGANIZATION = 0 and ISGROUP = 0
            union all
            select top(@MAXROWS)
                C.ID
            from
                dbo.ALTERNATELOOKUPID AL
            inner join
                dbo.CONSTITUENT C on C.ID = AL.CONSTITUENTID and C.KEYNAME = @CONSTITUENTKEYNAME and 
                    C.FIRSTNAME = @CONSTITUENTFIRSTNAME and C.ISORGANIZATION = 0 and C.ISGROUP = 0
            where
                AL.ALTERNATELOOKUPID = @CONSTITUENTLOOKUPID
        )
        insert into @MATCHINGIDS
        select distinct
            ID
        from
            LOOKUPIDS_CTE
    end
    else if @CONSTITUENTKEYNAME is not null and @CONSTITUENTKEYNAME <> '' and
            @CONSTITUENTLOOKUPID is not null and @CONSTITUENTLOOKUPID <> '' begin
        with LOOKUPIDS_CTE as (
            select top(@MAXROWS)
                C.ID ID
            from
                dbo.CONSTITUENT C
            where
                LOOKUPID = @CONSTITUENTLOOKUPID and C.KEYNAME = @CONSTITUENTKEYNAME and 
                ISORGANIZATION = 0 and ISGROUP = 0
            union all
            select top(@MAXROWS)
                C.ID
            from
                dbo.ALTERNATELOOKUPID AL
            inner join
                dbo.CONSTITUENT C on C.ID = AL.CONSTITUENTID and C.KEYNAME = @CONSTITUENTKEYNAME and 
                    C.ISORGANIZATION = 0 and C.ISGROUP = 0
            where
                AL.ALTERNATELOOKUPID = @CONSTITUENTLOOKUPID
        )
        insert into @MATCHINGIDS
        select distinct
            ID
        from
            LOOKUPIDS_CTE
    end
    else if @CONSTITUENTLOOKUPID is not null and @CONSTITUENTLOOKUPID <> '' begin
        with LOOKUPIDS_CTE as (
            select top(@MAXROWS)
                C.ID ID
            from
                dbo.CONSTITUENT C
            where
                LOOKUPID = @CONSTITUENTLOOKUPID and 
                ISORGANIZATION = 0 and ISGROUP = 0
            union all
            select top(@MAXROWS)
                C.ID
            from
                dbo.ALTERNATELOOKUPID AL
            inner join
                dbo.CONSTITUENT C on C.ID = AL.CONSTITUENTID and 
                    C.ISORGANIZATION = 0 and C.ISGROUP = 0
            where
                AL.ALTERNATELOOKUPID = @CONSTITUENTLOOKUPID
        )
        insert into @MATCHINGIDS
        select distinct
            ID
        from
            LOOKUPIDS_CTE
    end

    return 
end