UFN_MKTSEGMENTATIONPASSIVESEGMENT_GETRESPONSECOUNT
Returns the number of responses expected from a public media marketing effort segment.
Return
Return Type |
---|
int |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONSEGMENTID | uniqueidentifier | IN | |
@IMPRESSIONCALCULATIONMETHODCODE | tinyint | IN | |
@IMPRESSIONS | int | IN | |
@EXPOSURESTARTDATE | date | IN | |
@EXPOSUREENDDATE | date | IN | |
@RESPONSERATE | decimal(5, 2) | IN |
Definition
Copy
create function dbo.[UFN_MKTSEGMENTATIONPASSIVESEGMENT_GETRESPONSECOUNT]
(
@SEGMENTATIONSEGMENTID uniqueidentifier,
@IMPRESSIONCALCULATIONMETHODCODE tinyint = null,
@IMPRESSIONS integer = null,
@EXPOSURESTARTDATE date = null,
@EXPOSUREENDDATE date = null,
@RESPONSERATE decimal(5, 2)
)
returns integer
as
begin
declare @RESPONSES integer;
set @RESPONSES = 0;
if @IMPRESSIONCALCULATIONMETHODCODE is null or @IMPRESSIONS is null or @EXPOSURESTARTDATE is null or @EXPOSUREENDDATE is null or @RESPONSERATE is null
select
@IMPRESSIONCALCULATIONMETHODCODE = [MKTSEGMENTPASSIVE].[IMPRESSIONCALCULATIONMETHODCODE],
@IMPRESSIONS = [MKTSEGMENTPASSIVE].[IMPRESSIONS],
@EXPOSURESTARTDATE = [MKTSEGMENTATIONSEGMENT].[EXPOSURESTARTDATE],
@EXPOSUREENDDATE = [MKTSEGMENTATIONSEGMENT].[EXPOSUREENDDATE],
@RESPONSERATE = [MKTSEGMENTATIONSEGMENT].[RESPONSERATE]
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENTPASSIVE] on [MKTSEGMENTPASSIVE].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
where [MKTSEGMENTATIONSEGMENT].[ID] = @SEGMENTATIONSEGMENTID;
if not (@IMPRESSIONCALCULATIONMETHODCODE is null or @IMPRESSIONS is null or @EXPOSURESTARTDATE is null or @EXPOSUREENDDATE is null)
set @RESPONSES = floor((case @IMPRESSIONCALCULATIONMETHODCODE when 0 then (@IMPRESSIONS * (datediff(dd, @EXPOSURESTARTDATE, @EXPOSUREENDDATE) + 1)) else @IMPRESSIONS end) * (@RESPONSERATE / 100))
return @RESPONSES;
end