USP_DATALIST_APPEALMAILINGRESPONSEINFO
Returns response information for a given Appeal Mailing.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MAILINGID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_APPEALMAILINGRESPONSEINFO
(
@MAILINGID uniqueidentifier
)
as
set nocount on;
declare @UNRESOLVEDRESPONSECOUNTS table([RESPONDERS] int, [RESPONSES] int, [TOTALGIFTAMOUNT] money, [AVERAGEGIFTAMOUNT] money, [ORGANIZATIONTOTALGIFTAMOUNT] money, [ORGANIZATIONAVERAGEGIFTAMOUNT] money);
declare @BASECURRENCYID uniqueidentifier;
select @BASECURRENCYID = [BASECURRENCYID] from dbo.[MKTSEGMENTATION] where [ID] = @MAILINGID;
insert into @UNRESOLVEDRESPONSECOUNTS
exec dbo.[USP_MKTSEGMENTATION_GETUNRESOLVEDRESPONSECOUNTS] @MAILINGID;
select
'Total (Direct + Indirect)' as [RESPONSETYPE],
[RESPONDERS],
[RESPONSES],
[TOTALGIFTAMOUNT],
[AVERAGEGIFTAMOUNT],
[COSTPERDOLLARRAISED],
convert(decimal(20,2), [RESPONSERATE]),
[ROIAMOUNT],
convert(decimal(20,2), [ROIPERCENT]),
@BASECURRENCYID
from dbo.[MKTSEGMENTATIONACTIVE]
where [ID] = @MAILINGID
union all
select
'Direct' as [RESPONSETYPE],
[RESPONDERS] - [INDIRECTRESPONDERS] as [RESPONDERS],
[RESPONSES] - [INDIRECTRESPONSES] as [RESPONSES],
[TOTALGIFTAMOUNT] - [INDIRECTTOTALGIFTAMOUNT] as [TOTALGIFTAMOUNT],
(case when ([RESPONSES] - [INDIRECTRESPONSES]) > 0 then ([TOTALGIFTAMOUNT] - [INDIRECTTOTALGIFTAMOUNT]) / cast(([RESPONSES] - [INDIRECTRESPONSES]) as money) else 0 end) as [AVERAGEGIFTAMOUNT],
(case when ([TOTALGIFTAMOUNT] - [INDIRECTTOTALGIFTAMOUNT]) > 0 then [TOTALCOST] / ([TOTALGIFTAMOUNT] - [INDIRECTTOTALGIFTAMOUNT]) else 0 end) as [COSTPERDOLLARRAISED],
convert(decimal(20,2), (case when [QUANTITY] > 0 then ((cast([RESPONSES] as float) - [INDIRECTRESPONSES]) / [QUANTITY]) * 100 else 0 end)) as [RESPONSERATE],
[TOTALGIFTAMOUNT] - [INDIRECTTOTALGIFTAMOUNT] - [TOTALCOST] as [ROIAMOUNT],
convert(decimal(20,2), (case when [TOTALCOST] > 0 then (([TOTALGIFTAMOUNT] - [INDIRECTTOTALGIFTAMOUNT] - [TOTALCOST]) / [TOTALCOST]) * 100 else 0 end)) as [ROIPERCENT],
@BASECURRENCYID
from dbo.[MKTSEGMENTATIONACTIVE]
where [ID] = @MAILINGID
union all
select
'Indirect' as [RESPONSETYPE],
[INDIRECTRESPONDERS],
[INDIRECTRESPONSES],
[INDIRECTTOTALGIFTAMOUNT],
[INDIRECTAVERAGEGIFTAMOUNT],
0 as [COSTPERDOLLARRAISED],
0.00 as [RESPONSERATE],
0 as [ROIAMOUNT],
0.00 as [ROIPERCENT],
@BASECURRENCYID
from dbo.[MKTSEGMENTATIONACTIVE]
where [ID] = @MAILINGID
union all
select
'Unresolved' as [RESPONSETYPE],
[RESPONDERS],
[RESPONSES],
[TOTALGIFTAMOUNT],
[AVERAGEGIFTAMOUNT],
0 as [COSTPERDOLLARRAISED],
0.00 as [RESPONSERATE],
0 as [ROIAMOUNT],
0.00 as [ROIPERCENT],
@BASECURRENCYID
from @UNRESOLVEDRESPONSECOUNTS;