USP_DATALIST_MEMBERSHIP_NEWMEMBERSHIPSBYDATE

Returns a list of new memberships sold by date.

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_MEMBERSHIP_NEWMEMBERSHIPSBYDATE
            as
                set nocount on;

                with MEMBERSHIPS_CTE as (
                    select 
                        count(M.ID) NEWMEMBERSHIPS,
                        null as RENEWALS,
                        MP.NAME PROGRAM        
                    from dbo.SALESORDERITEMMEMBERSHIP SOIM
                    inner join dbo.MEMBERSHIP M on M.ID = SOIM.MEMBERSHIPID
                    inner join dbo.MEMBERSHIPPROGRAM MP on M.MEMBERSHIPPROGRAMID = MP.ID
                    inner join dbo.MEMBERSHIPTRANSACTION MT on MT.ID = SOIM.MEMBERSHIPTRANSACTIONID
                    inner join dbo.SALESORDERITEM SOI on SOI.ID = SOIM.ID
                    inner join dbo.SALESORDER SO on SO.ID = SOI.SALESORDERID
                    where MT.ACTIONCODE = 0
                    group by MP.NAME

                    union all

                    select 
                        null as NEWMEMBERSHIPS,
                        count(M.ID) RENEWALS,
                        MP.NAME PROGRAM        
                    from dbo.SALESORDERITEMMEMBERSHIP SOIM
                    inner join dbo.MEMBERSHIP M on M.ID = SOIM.MEMBERSHIPID
                    inner join dbo.MEMBERSHIPPROGRAM MP on M.MEMBERSHIPPROGRAMID = MP.ID
                    inner join dbo.MEMBERSHIPTRANSACTION MT on MT.ID = SOIM.MEMBERSHIPTRANSACTIONID
                    inner join dbo.SALESORDERITEM SOI on SOI.ID = SOIM.ID
                    inner join dbo.SALESORDER SO on SO.ID = SOI.SALESORDERID
                    where MT.ACTIONCODE in (1,2,3)
                    group by MP.NAME
                )
                select 
                    coalesce(sum(NEWMEMBERSHIPS),0) NEWMEMBERSHIPS,
                    coalesce(sum(RENEWALS),0) RENEWALS,
                    PROGRAM
                from MEMBERSHIPS_CTE
                group by PROGRAM
                order by PROGRAM