UFN_MKTSEGMENTATIONPASSIVESEGMENT_GETEXPECTEDRESPONSECOUNT
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 | |
@ACTIVE | bit | 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_GETEXPECTEDRESPONSECOUNT]
(
@SEGMENTATIONSEGMENTID uniqueidentifier,
@ACTIVE bit = null,
@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 @ACTIVE is null
select top 1
@ACTIVE = [MKTSEGMENTATION].[ACTIVE]
from dbo.[MKTSEGMENTATION]
inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
where [MKTSEGMENTATIONSEGMENT].[ID] = @SEGMENTATIONSEGMENTID;
if @IMPRESSIONCALCULATIONMETHODCODE is null or @IMPRESSIONS is null or @EXPOSURESTARTDATE is null or @EXPOSUREENDDATE is null or @RESPONSERATE is null
select
@IMPRESSIONCALCULATIONMETHODCODE = case @ACTIVE when 1 then [MKTSEGMENTATIONSEGMENTACTIVE].[IMPRESSIONCALCULATIONMETHODCODE] else [MKTSEGMENTPASSIVE].[IMPRESSIONCALCULATIONMETHODCODE] end,
@IMPRESSIONS = case @ACTIVE when 1 then [MKTSEGMENTATIONSEGMENTACTIVE].[IMPRESSIONS] else [MKTSEGMENTPASSIVE].[IMPRESSIONS] end,
@EXPOSURESTARTDATE = [MKTSEGMENTATIONSEGMENT].[EXPOSURESTARTDATE],
@EXPOSUREENDDATE = [MKTSEGMENTATIONSEGMENT].[EXPOSUREENDDATE],
@RESPONSERATE = [MKTSEGMENTATIONSEGMENT].[RESPONSERATE]
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENTPASSIVE] on [MKTSEGMENTPASSIVE].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
left outer join dbo.[MKTSEGMENTATIONSEGMENTACTIVE] on [MKTSEGMENTATIONSEGMENTACTIVE].[SEGMENTID] = [MKTSEGMENTATIONSEGMENT].[ID]
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