UFN_RELATIONSHIPMAP_GETRELATIONSHIPS

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@CURRENTDATE datetime IN
@TOPN int IN

Definition

Copy


            CREATE function [dbo].[UFN_RELATIONSHIPMAP_GETRELATIONSHIPS](
                @CONSTITUENTID uniqueidentifier,
        @CURRENTDATE datetime,
                @TOPN integer
            )
            returns table
            as
            return
            (
        with RELATIONSHIPSET_CTE as
        (
          select
            RELATIONSHIP.ID,
            RELATIONSHIP.RECIPROCALCONSTITUENTID,
            RELATIONSHIP.ISSPOUSE,
            CONSTITUENT.ISGROUP,
            CONSTITUENT.ISORGANIZATION
          from dbo.RELATIONSHIP
          inner join dbo.CONSTITUENT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
          where 
            RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @CONSTITUENTID
              and (@CURRENTDATE is null
                or RELATIONSHIP.STARTDATE is null
                or RELATIONSHIP.STARTDATE <= @CURRENTDATE)
              and (@CURRENTDATE is null
                or RELATIONSHIP.ENDDATE is null
                or RELATIONSHIP.ENDDATE >= @CURRENTDATE)
        )
        select 
          ID, 
          RECIPROCALCONSTITUENTID
        from RELATIONSHIPSET_CTE
        where 
          RECIPROCALCONSTITUENTID in  
            (
             select top (@TOPN)
                RECIPROCALCONSTITUENTID
              from RELATIONSHIPSET_CTE
              group by   
                RECIPROCALCONSTITUENTID,
                ISGROUP,
                ISORGANIZATION
              order by ROW_NUMBER() over (order by  max(case when ISSPOUSE = 1 then 1 else 0 end) desc, ISGROUP, ISORGANIZATION)
            ) 
    )