USP_DATALIST_MEMBERSHIPMAILINGRENEWALREPORTSUMMARY
Fetches membership renewal effort summary information
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@CURRENCYCODE | tinyint | IN | Currency |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_MEMBERSHIPMAILINGRENEWALREPORTSUMMARY]
(
@SEGMENTATIONID uniqueidentifier,
@CURRENCYCODE tinyint = 1
)
as
set nocount on;
declare @APPEALLIST nvarchar(max);
declare @APPEAL nvarchar(100);
declare APPEALCURSOR cursor local fast_forward for
select [APPEALDESCRIPTION]
from dbo.[MKTSEGMENTATIONACTIVATE]
where [SEGMENTATIONID] = @SEGMENTATIONID;
open APPEALCURSOR;
fetch next from APPEALCURSOR into @APPEAL;
while (@@FETCH_STATUS = 0)
begin
if @APPEALLIST is not null
set @APPEALLIST = @APPEALLIST + ', ';
set @APPEALLIST = isnull(@APPEALLIST,'') + @APPEAL;
fetch next from APPEALCURSOR into @APPEAL;
end;
close APPEALCURSOR;
deallocate APPEALCURSOR;
select
[MKTSEGMENTATION].[NAME],
[MKTSEGMENTATION].[DESCRIPTION],
[MKTSEGMENTATION].[CODE],
[MKTSEGMENTATION].[IDINTEGER] as [MAILINGID],
dbo.[UFN_TRANSLATIONFUNCTION_SITE_GETNAME]([MKTSEGMENTATION].[SITEID]) as [SITE],
isnull(@APPEALLIST, '') as [APPEAL],
[MKTSEGMENTATION].[MAILDATE],
[MKTSEGMENTATION].[ACTIVATEDATE],
isnull([MKTSEGMENTATIONREFRESHPROCESS].[DATEREFRESHED], [MKTSEGMENTATION].[ACTIVATEDATE]) as [REFRESHDATE],
(select count([ID]) from dbo.[MKTSEGMENTATIONSEGMENT] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [SEGMENTS],
(select count([ID]) from dbo.[MKTSEGMENTATIONPACKAGE] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [PACKAGES],
(select count([ID]) from dbo.[MKTSEGMENTATIONSEED] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [SEEDS],
case when @CURRENCYCODE = 1 then [MKTSEGMENTATIONBUDGET].[ORGANIZATIONBUDGETAMOUNT] else [MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT] end as [BUDGETAMOUNT],
(select
case when @CURRENCYCODE = 1 then sum([ORGANIZATIONTOTALCOST]) else sum([TOTALCOST]) end
from dbo.[MKTSEGMENTATIONSEGMENTACTIVE]
inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENTACTIVE].[SEGMENTID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [EXPENSES],
[MKTSEGMENTATIONACTIVE].[QUANTITY],
[MKTSEGMENTATIONACTIVE].[RESPONSES],
[MKTMEMBERSHIPMAILINGACTIVE].[RENEWALS],
[MKTMEMBERSHIPMAILINGACTIVE].[UPGRADES],
[MKTMEMBERSHIPMAILINGACTIVE].[DOWNGRADES],
([MKTMEMBERSHIPMAILINGACTIVE].[RENEWALS] - [MKTMEMBERSHIPMAILINGACTIVE].[UPGRADES] - [MKTMEMBERSHIPMAILINGACTIVE].[DOWNGRADES]) as [SAME],
-- we store these as percents, but we're dividing them by 100 to get them back to rates to take advantage of
-- the report's ability to format a rate as a percentage
[MKTMEMBERSHIPMAILINGACTIVE].[RENEWALRATE] / 100 as [RENEWALRATE],
[MKTMEMBERSHIPMAILINGACTIVE].[UPGRADERATE] / 100 as [UPGRADERATE],
[MKTMEMBERSHIPMAILINGACTIVE].[DOWNGRADERATE] / 100 as [DOWNGRADERATE],
[CURRENCY].[ISO4217],
[CURRENCY].[DECIMALDIGITS],
[CURRENCY].[CURRENCYSYMBOL],
[CURRENCY].[SYMBOLDISPLAYSETTINGCODE]
from dbo.[MKTSEGMENTATION]
inner join dbo.[MKTSEGMENTATIONBUDGET] on [MKTSEGMENTATIONBUDGET].[ID] = [MKTSEGMENTATION].[ID]
inner join dbo.[MKTSEGMENTATIONACTIVE] on [MKTSEGMENTATIONACTIVE].[ID] = [MKTSEGMENTATION].[ID]
inner join dbo.[MKTMEMBERSHIPMAILINGACTIVE] on [MKTMEMBERSHIPMAILINGACTIVE].[ID] = [MKTSEGMENTATIONACTIVE].[ID]
left join dbo.[MKTSEGMENTATIONREFRESHPROCESS] on [MKTSEGMENTATIONREFRESHPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
inner join dbo.[CURRENCY] on [CURRENCY].[ID] = case when @CURRENCYCODE = 1 then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]() else [MKTSEGMENTATIONBUDGET].[BASECURRENCYID] end
where [MKTSEGMENTATION].[ID] = @SEGMENTATIONID;
return 0;