UFN_MKTCOMMUNICATIONEFFORT_GETLASTRUNDATE_BULK

Return

Return Type
table

Definition

Copy


create function dbo.[UFN_MKTCOMMUNICATIONEFFORT_GETLASTRUNDATE_BULK]()
returns table
as
return (
  with [BUSINESSPROCESS_CTE] ([PARAMETERSETID], [ENDEDON], [STATUSCODE], [ID]) as
  (
    select
      [BUSINESSPROCESSPARAMETERSETID],
      [ENDEDON],
      [STATUSCODE],
      [ID]
    from dbo.[BUSINESSPROCESSSTATUS]
  )
  select
    [MKTSEGMENTATION].[ID] as [SEGMENTATIONID],

    --Calculate

    [CALCULATEPROCESS_CTE].[LASTRUN] as [SEGMENTATIONSEGMENTCALCULATEPROCESSLASTRUN],

    --Refresh selections

    isnull([REFRESHSELECTIONS_CTE].[LASTRUN], [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONSEGMENTREFRESHPROCESSLASTRUN]) as [SEGMENTATIONSEGMENTREFRESHPROCESSLASTRUN],

    --Exclusions report

    [EXCLUSIONSREPORT_CTE].[LASTRUN] as [MARKETINGEXCLUSIONSREPORTLASTRUN],

    --SAR - If SAR was run during activate, then return the first activate date, else return the date SAR was cached during the segment counts calculate process

    isnull([SARACTIVATE_CTE].[FIRSTRUN], [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[SOURCEANALYSISRULEDATALASTCACHED]) as [CACHESOURCEANALYSISRULEDATALASTRUN],

    --Export

    [EXPORTPROCESS_CTE].[LASTRUN] as [EXPORTPROCESSLASTRUN]

  from dbo.[MKTSEGMENTATION]
  left join dbo.[MKTSEGMENTATIONSEGMENTCALCULATEPROCESS] on [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  left join dbo.[MKTSEGMENTATIONSEGMENTREFRESHPROCESS] on [MKTSEGMENTATIONSEGMENTREFRESHPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  left join dbo.[MKTSEGMENTATIONACTIVATEPROCESS] on [MKTSEGMENTATIONACTIVATEPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  left join dbo.[MKTSEGMENTATIONEXPORTPROCESS] on [MKTSEGMENTATIONEXPORTPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]

  --Calculate

  outer apply (select top 1 [BUSINESSPROCESS_CTE].[ENDEDON] as [LASTRUN] from [BUSINESSPROCESS_CTE] where [BUSINESSPROCESS_CTE].[PARAMETERSETID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[ID] and [BUSINESSPROCESS_CTE].[STATUSCODE] = 0 order by [BUSINESSPROCESS_CTE].[ENDEDON] desc) as [CALCULATEPROCESS_CTE]

  --Refresh selections

  outer apply (select top 1 [BUSINESSPROCESS_CTE].[ENDEDON] as [LASTRUN] from [BUSINESSPROCESS_CTE] where [BUSINESSPROCESS_CTE].[PARAMETERSETID] = [MKTSEGMENTATIONSEGMENTREFRESHPROCESS].[ID] and [BUSINESSPROCESS_CTE].[STATUSCODE] = 0 order by [BUSINESSPROCESS_CTE].[ENDEDON] desc) as [REFRESHSELECTIONS_CTE]

  --Exclusions report

  outer apply (select top 1 [BUSINESSPROCESS_CTE].[ENDEDON] as [LASTRUN] from [BUSINESSPROCESS_CTE] inner join dbo.[BUSINESSPROCESSOUTPUT] on [BUSINESSPROCESSOUTPUT].[BUSINESSPROCESSSTATUSID] = [BUSINESSPROCESS_CTE].[ID] where [BUSINESSPROCESS_CTE].[PARAMETERSETID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[ID] and [BUSINESSPROCESSOUTPUT].[TABLEKEY] = 'EFFORTEXCLUSIONS' order by [BUSINESSPROCESS_CTE].[ENDEDON] desc) as [EXCLUSIONSREPORT_CTE]

  --SAR - This one is different in that it sorts by "asc" instead of "desc" because since you can run through the activate process more than once but SAR is only cached the very first time, we need to make sure we grab that very first activation date that cached the SAR (if it was cached during activate).

  outer apply (select top 1 [BUSINESSPROCESS_CTE].[ENDEDON] as [FIRSTRUN] from [BUSINESSPROCESS_CTE] where [BUSINESSPROCESS_CTE].[PARAMETERSETID] = [MKTSEGMENTATIONACTIVATEPROCESS].[ID] and [MKTSEGMENTATIONACTIVATEPROCESS].[CACHESOURCEANALYSISRULEDATA] = 1 and [BUSINESSPROCESS_CTE].[STATUSCODE] = 0 order by [BUSINESSPROCESS_CTE].[ENDEDON] asc) as [SARACTIVATE_CTE]

  --Export

  outer apply (select top 1 [BUSINESSPROCESS_CTE].[ENDEDON] as [LASTRUN] from [BUSINESSPROCESS_CTE] where [BUSINESSPROCESS_CTE].[PARAMETERSETID] = [MKTSEGMENTATIONEXPORTPROCESS].[ID] order by [BUSINESSPROCESS_CTE].[ENDEDON] desc) as [EXPORTPROCESS_CTE]
);