USP_MKTSEGMENTATION_NEEDSMATCHBACK
Returns whether or not the active marketing effort needs matchback processed.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONID | uniqueidentifier | IN | |
@NEEDSMATCHBACK | bit | INOUT |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATION_NEEDSMATCHBACK]
(
@SEGMENTATIONID uniqueidentifier,
@NEEDSMATCHBACK bit = null output
)
as
set nocount on;
-- public media marketing efforts always require matchback
select
@NEEDSMATCHBACK = case when [MAILINGTYPECODE] = 4 then 1 else 0 end
from dbo.[MKTSEGMENTATION] where [ID] = @SEGMENTATIONID;
if @NEEDSMATCHBACK = 0
begin
declare @SQL nvarchar(max);
--Check if the mailing has any imported list segments (including imported records in the consolidated list) that need matchback...
set @SQL = 'select @NEEDSMATCHBACK = case when exists(' + char(13) +
' select top 1 1' + char(13) +
' from dbo.[' + dbo.[UFN_MKTSEGMENTATIONACTIVATE_MAKETABLENAME](@SEGMENTATIONID) + '] as [DONORS]' + char(13) +
' inner join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[QUERYVIEWCATALOGID] = [DONORS].[DONORQUERYVIEWCATALOGID])' + char(13) +
'then 1 else 0 end';
exec sp_executesql @SQL, N'@NEEDSMATCHBACK bit output', @NEEDSMATCHBACK = @NEEDSMATCHBACK output;
end
if @NEEDSMATCHBACK = 0
begin
--Check if the mailing has any non-imported list segments that need matchback...
select @NEEDSMATCHBACK = (case when exists(
select top 1 1
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SEGMENTATIONID
and [MKTSEGMENT].[SEGMENTTYPECODE] = 2)
then 1 else 0 end);
end
return 0;