USP_DATALIST_MARKETINGEFFORTPERFORMANCEREVIEWPACES
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @ID | uniqueidentifier | IN | |
| @COMPAREDEFFORTS | xml | IN |
Definition
Copy
create procedure BBDW.USP_DATALIST_MARKETINGEFFORTPERFORMANCEREVIEWPACES
(
@ID uniqueidentifier,
@COMPAREDEFFORTS xml = null
)
as
set nocount on;
--Pace vars
DECLARE @TOTALQUANTITY decimal(19,4) = null
DECLARE @TOTALCOST money = null
DECLARE @GROSSREVENUEPACE money = null
DECLARE @TOTALRESPONSESPACE decimal (19,0) = null
--Calculate the paces
SELECT
/* PACE = CURRENT EFFORT CURRENT DAY * AVG(SUM((COMPARE 120 DAY) / (COMPARE CURRENT DAY))) */
@GROSSREVENUEPACE =
/* GrossRevenue */
COALESCE(MAX(ms.SEGMENTATIONTOTALGIFTAMOUNT) *
AVG(CONVERT(DECIMAL, msCompare.SEGMENTATIONTOTALGIFTAMOUNT)/
CONVERT(DECIMAL, NULLIF(msdr.SEGMENTATIONCUMULATIVEREVENUE,0))),
0),
@TOTALRESPONSESPACE =
/* TotalResponses */
COALESCE(MAX(ms.SEGMENTATIONRESPONSES) *
AVG(CONVERT(DECIMAL, msCompare.SEGMENTATIONRESPONSES)/
CONVERT(DECIMAL, NULLIF(msdr.SEGMENTATIONCUMULATIVERESPONSES,0))),
0),
@TOTALQUANTITY = MAX(ms.SEGMENTATIONQUANTITY),
@TOTALCOST = MAX(ms.SEGMENTATIONTOTALCOST)
FROM @COMPAREDEFFORTS.nodes('/COMPAREDEFFORTS/ITEM') T(c)
INNER JOIN BBDW.DIM_MARKETINGSEGMENTATION ms
ON ms.SEGMENTATIONSYSTEMID = @ID
/* COMPARE EFFORTS */
INNER JOIN BBDW.DIM_MARKETINGSEGMENTATION msCompare
ON msCompare.SEGMENTATIONSYSTEMID = T.c.value('(COMPARETOSEGMENTATIONID)[1]','uniqueidentifier')
/* COMPARE EFFORTS */
LEFT JOIN BBDW.FACT_MARKETINGSEGMENTATIONDAILYRESPONSE msdr
ON msdr.MARKETINGSEGMENTATIONDIMID = msCompare.MARKETINGSEGMENTATIONDIMID
AND msdr.SEGMENTATIONDAYSSINCEFIRSTRESPONSE = DATEDIFF(DAY, ms.SEGMENTATIONFIRSTRESPONSEDATE, GETDATE());
SELECT
/* PACE = CURRENT EFFORT CURRENT DAY * ((COMPARE 120 DAY) / (COMPARE CURRENT DAY)) */
/* CostPerDollarRaisedPace = TotalCost/GrossRevenue */
CONVERT(DECIMAL, ISNULL(@TOTALCOST/NULLIF(@GROSSREVENUEPACE,0),0)),
/* CostToAcquirePace = TotalCost/Responses */
CONVERT(DECIMAL, ISNULL(@TOTALCOST/NULLIF(@TOTALRESPONSESPACE,0),0)),
/* NetRevenuePace = (GrossRevenue - TotalCost) */
CONVERT(DECIMAL, ISNULL(@GROSSREVENUEPACE - @TOTALCOST,0)),
@GROSSREVENUEPACE,
/* AverageGiftAmountPace = GrossRevenue/Responses */
CONVERT(DECIMAL, ISNULL(@GROSSREVENUEPACE/NULLIF(@TOTALRESPONSESPACE,0),0)),
@TOTALRESPONSESPACE,
/* ResponseRatePace = Responses/Quantity*100 Note:Qty and "100" cancel out */
CONVERT(INTEGER, ISNULL(@TOTALRESPONSESPACE/NULLIF(@TOTALQUANTITY,0),0)*100)
return 0;