UFN_CONSTITUENT_MATCHINGHOUSEHOLDRECORDS
Returns a list of constituents related through a household.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_CONSTITUENT_MATCHINGHOUSEHOLDRECORDS
(
@CONSTITUENTID uniqueidentifier
) returns @CONSTITUENTSWITHMATCHINGEMAILADDRESS table(CONSTITUENTID uniqueidentifier) as
begin
declare @CURRENTDATE date;
set @CURRENTDATE = getdate();
-- the record if it's a household, or the household an individual belongs to
declare @HOUSEHOLDID uniqueidentifier;
if dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID) = 1
set @HOUSEHOLDID = @CONSTITUENTID;
else
select
@HOUSEHOLDID = GM.GROUPID
from
dbo.GROUPMEMBER GM
left outer join
dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
left outer join
dbo.GROUPDATA GD on GD.ID = GM.GROUPID
where
GM.MEMBERID = @CONSTITUENTID
and
GD.GROUPTYPECODE = 0
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE));
declare @PRIMARYMEMBERID uniqueidentifier;
select
@PRIMARYMEMBERID = GM.MEMBERID
from
dbo.GROUPMEMBER GM
where
GM.GROUPID = @HOUSEHOLDID
and
GM.ISPRIMARY = 1;
with HOUSEHOLDCONSTITUENTID(ID) as
(
select
GM.MEMBERID as ID
from
dbo.GROUPMEMBER GM
left outer join
dbo.GROUPMEMBERDATERANGE GMDR on GMDR.GROUPMEMBERID = GM.ID
where
GM.GROUPID = @HOUSEHOLDID
and ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE))
or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))
and
GM.MEMBERID <> @CONSTITUENTID
union all
select
@HOUSEHOLDID
where
@HOUSEHOLDID <> @CONSTITUENTID
)
insert into
@CONSTITUENTSWITHMATCHINGEMAILADDRESS
select * from HOUSEHOLDCONSTITUENTID
return;
end