USP_DATALIST_RELATIONSHIPSBYMARRIAGE
This will return a list of relationships by marriage for given constituent and spouse ids.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_RELATIONSHIPSBYMARRIAGE
(
@CONSTITUENTID uniqueidentifier
)
as
set nocount on;
declare @SPOUSEID uniqueidentifier;
declare @CURRENTDATE datetime;
set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
select
@SPOUSEID = RELATIONSHIP.RECIPROCALCONSTITUENTID
from
dbo.CONSTITUENT CONSTIT
left join dbo.RELATIONSHIP
on RELATIONSHIP.RELATIONSHIPCONSTITUENTID = CONSTIT.ID and RELATIONSHIP.ISSPOUSE = 1
left join dbo.CONSTITUENT SPOUSE
on RELATIONSHIP.RECIPROCALCONSTITUENTID = SPOUSE.ID
where
CONSTIT.ID = @CONSTITUENTID
select
CONSTITUENTID,
NF.NAME + ' (' + (
select
dbo.UDA_BUILDLIST(NF_SPOUSE.NAME + '''s ' + RELATIONSHIPTYPECODE.DESCRIPTION)
from dbo.RELATIONSHIP
inner join dbo.RELATIONSHIPTYPECODE
on RELATIONSHIPTYPECODE.ID = RELATIONSHIP.RECIPROCALTYPECODEID
left join dbo.RELATIONSHIPCONFIGURATION
on RELATIONSHIPTYPECODE.ID = RELATIONSHIPCONFIGURATION.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(RELATIONSHIPCONSTITUENTID) NF_SPOUSE
where
RELATIONSHIP.RECIPROCALCONSTITUENTID = RELS.CONSTITUENTID and
RELATIONSHIP.RELATIONSHIPCONSTITUENTID in (@CONSTITUENTID, @SPOUSEID) and
(RELATIONSHIP.ENDDATE is null or RELATIONSHIP.ENDDATE >= @CURRENTDATE) and
(RELATIONSHIPCONFIGURATION.ID is null or RELATIONSHIPCONFIGURATION.APPLIESTOINDIVIDUALS = 1) and
RELATIONSHIP.ID not in (select RELATIONSHIPID from dbo.RELATIONSHIPBYMARRIAGE) and
not exists --exclude deceased
(
select
ID
from dbo.DECEASEDCONSTITUENT
where DECEASEDCONSTITUENT.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID and
not RELATIONSHIP.RECIPROCALCONSTITUENTID in (@CONSTITUENTID, @SPOUSEID) --but include deceased spouses
)
) + ')' AS NAME,
(select count(ID) from dbo.UFN_RELATIONSHIPSBYMARRIAGE(@CONSTITUENTID, CONSTITUENTID)) NUM_RELATIONSHIPS,
convert(nvarchar(36),@CONSTITUENTID) + convert(nvarchar(36), CONSTITUENTID) PARENTIDCHILDID,
(select ID from dbo.RELATIONSHIP where RECIPROCALCONSTITUENTID = @CONSTITUENTID and ISSPOUSE = 1) MARRIAGERELATIONSHIPID --needed for add action
from
(
select distinct
RECIPROCALCONSTITUENTID as CONSTITUENTID
from dbo.RELATIONSHIP
left join dbo.RELATIONSHIPCONFIGURATION
on RELATIONSHIP.RECIPROCALTYPECODEID = RELATIONSHIPCONFIGURATION.ID
where
RELATIONSHIPCONSTITUENTID in (@CONSTITUENTID,@SPOUSEID) and
(RELATIONSHIP.ENDDATE is null or RELATIONSHIP.ENDDATE >= @CURRENTDATE) and
(RELATIONSHIPCONFIGURATION.ID is null or RELATIONSHIPCONFIGURATION.APPLIESTOINDIVIDUALS = 1) and
RELATIONSHIP.ID not in (select RELATIONSHIPID from dbo.RELATIONSHIPBYMARRIAGE) and
not exists --exclude deceased
(
select ID
from dbo.DECEASEDCONSTITUENT
where DECEASEDCONSTITUENT.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID and
not RELATIONSHIP.RECIPROCALCONSTITUENTID in (@CONSTITUENTID, @SPOUSEID) --but include deceased spouses
)
) RELS
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENTID) NF
order by NAME;