USP_SIMPLEDATALIST_GROUPMEMBERS

Lists all current members of a group or household.

Parameters

Parameter Parameter Type Mode Description
@GROUPID uniqueidentifier IN Group

Definition

Copy


                CREATE procedure dbo.USP_SIMPLEDATALIST_GROUPMEMBERS
                (
                    @GROUPID uniqueidentifier
                )
                as
                    set nocount on

                    declare @CURRENTDATE date;
                    set @CURRENTDATE = getdate();

                    select
                        GM.MEMBERID as VALUE,
                        NF.NAME as LABEL
                    from dbo.GROUPMEMBER GM
                    inner join dbo.CONSTITUENT C on GM.MEMBERID = C.ID
                    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(C.ID) NF
                    left join dbo.GROUPMEMBERDATERANGE GMDR on GM.ID = GMDR.GROUPMEMBERID
                    where
                        GM.GROUPID = @GROUPID
                        -- the GMDR.DATETO is set to the earliest time on that day, so use a strictly greater than in checks using current day

                        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))
                    order by C.KEYNAME, C.FIRSTNAME