USP_MKTSEGMENTATIONSEGMENTCALCULATEPROCESS_GETOPTIONS

Gathers information about a marketing effort's segment record count calculation process.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSEGMENTATIONSEGMENTCALCULATEPROCESS_GETOPTIONS]
(
  @ID uniqueidentifier
)
as
  set nocount on;

  declare @SEGMENTATIONID uniqueidentifier;
  declare @SOURCEANALYSISRULEDATAEXISTS bit;

  select
    @SEGMENTATIONID = [SEGMENTATIONID]
  from dbo.[MKTSEGMENTATIONSEGMENTCALCULATEPROCESS]
  where [ID] = @ID;

  exec dbo.[USP_MKTSEGMENTATION_SOURCEANALYSISRULEDATAEXISTS] @SEGMENTATIONID, @SOURCEANALYSISRULEDATAEXISTS output;

  -- See if any segments use a name format containing an advanced spouse option.

  declare @ADVANCEDNAMEFORMATOPTIONUSED bit = 0;
  if exists (select top 1 1
              from dbo.[MKTSEGMENTATIONSEGMENT]
              inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
              left join dbo.[NAMEFORMATPARAMETER] as [NAMEFORMATPARAMETEREFFORT] on [NAMEFORMATPARAMETEREFFORT].[ID] = [MKTSEGMENTATION].[NAMEFORMATPARAMETERID]
              left join dbo.[NAMEFORMATPARAMETER] as [NAMEFORMATPARAMETERSEGMENT] on [NAMEFORMATPARAMETERSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[NAMEFORMATPARAMETERID]
              where 
                [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SEGMENTATIONID
                -- advanced name format on the segment level

                and (([MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING] = 1 
                      and [MKTSEGMENTATIONSEGMENT].[USEADDRESSPROCESSING] = 1 
                      and ([NAMEFORMATPARAMETERSEGMENT].[JOINTEXCLUDESPOUSE] = 1 or [NAMEFORMATPARAMETERSEGMENT].[JOINTSPOUSESMAILEDSEPARATELY] = 1)) 
                -- advanced name format on the mailing level

                or ([MKTSEGMENTATIONSEGMENT].[OVERRIDEADDRESSPROCESSING] = 0 
                    and [MKTSEGMENTATION].[USEADDRESSPROCESSING] = 1
                    and ([NAMEFORMATPARAMETEREFFORT].[JOINTEXCLUDESPOUSE] = 1 or [NAMEFORMATPARAMETEREFFORT].[JOINTSPOUSESMAILEDSEPARATELY] = 1)))
            )

    set @ADVANCEDNAMEFORMATOPTIONUSED = 1;
  else
    set @ADVANCEDNAMEFORMATOPTIONUSED = 0;

  select
    @SEGMENTATIONID as [SEGMENTATIONID],
    (select count([ID]) from dbo.[MKTSEGMENTATIONSEGMENT] where [SEGMENTATIONID] = @SEGMENTATIONID) as [SEGMENTCOUNT],
    cast([MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[RUNSEGMENTATIONSEGMENTREFRESHPROCESS] as bit) as [RUNSEGMENTATIONSEGMENTREFRESHPROCESS],
    cast([MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[CACHESOURCEANALYSISRULEDATA] as bit) as [CACHESOURCEANALYSISRULEDATA],
    @SOURCEANALYSISRULEDATAEXISTS as [SOURCEANALYSISRULEDATAEXISTS],
    [MKTSEGMENTATION].[MAILINGTYPECODE],
    [MKTSEGMENTATIONSEGMENTREFRESHPROCESS].[ID] as [SEGMENTATIONSEGMENTREFRESHPROCESSID],
    [MKTMAILINGPREACTIVATIONPROCESS].[ID] as [MAILINGPREACTIVATIONPROCESSID],
    [MKTSEGMENTATION].[ACTIVE],
    [MKTSEGMENTATION].[HOUSEHOLDINGTYPECODE],
    [MKTSEGMENTATIONEXCLUSIONSPROCESS].[ID] as [SEGMENTATIONEXCLUSIONSPROCESSID],
    [MKTSEGMENTATION].[COMMUNICATIONTYPECODE],
    [MKTSEGMENTATION].[ISHISTORICAL],
    [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[RUNMARKETINGEXCLUSIONSREPORT],
    @ADVANCEDNAMEFORMATOPTIONUSED as [ADVANCEDNAMEFORMATOPTIONUSED]
  from dbo.[MKTSEGMENTATIONSEGMENTCALCULATEPROCESS]
  inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[SEGMENTATIONID]
  left join dbo.[MKTSEGMENTATIONSEGMENTREFRESHPROCESS] on [MKTSEGMENTATIONSEGMENTREFRESHPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[SEGMENTATIONID]
  left join dbo.[MKTMAILINGPREACTIVATIONPROCESS] on [MKTMAILINGPREACTIVATIONPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[SEGMENTATIONID]
  left join dbo.[MKTSEGMENTATIONEXCLUSIONSPROCESS] on [MKTSEGMENTATIONEXCLUSIONSPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[SEGMENTATIONID]
  where [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[ID] = @ID;

  return 0;