USP_DATALIST_SELECTIONBRIEF

One record datalist for use with Selection Brief dashboard.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CURRENCYCODE tinyint IN Currency

Definition

Copy


CREATE procedure dbo.[USP_DATALIST_SELECTIONBRIEF]
(
  @SEGMENTATIONID uniqueidentifier,
  @CURRENCYCODE tinyint = 1
)
as
  set nocount on;

  select
    [MKTSEGMENTATION].[NAME],
    [MKTSEGMENTATION].[MAILINGTYPECODE],
    [MKTSEGMENTATION].[MAILINGTYPE],
    [MKTSEGMENTATION].[DESCRIPTION],
    [MKTSEGMENTATION].[CODE],
    dbo.[UFN_TRANSLATIONFUNCTION_SITE_GETNAME]([MKTSEGMENTATION].[SITEID]) [SITE],
    [MKTSEGMENTATION].[IDINTEGER],
    [MKTSEGMENTATION].[ACTIVE],
    [MKTSEGMENTATION].[ACTIVATEDATE],
    isnull(stuff(
                  (
                    select ', ' + [APPEALDESCRIPTION]
                    from dbo.[MKTSEGMENTATIONACTIVATE]
                    where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
                    for xml path(''), type
                  ).value('.', 'varchar(max)')
                  , 1, 2, ''
                ), '') as [APPEAL],
    (select count([ID]) from dbo.[MKTSEGMENTATIONSEGMENT] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [NUMSEGMENTS],
    (select count([MKTSEGMENTATIONSEGMENT].[ID]) from dbo.[MKTSEGMENTATIONSEGMENT] inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID] where [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID] and [MKTSEGMENT].[SEGMENTTYPECODE] = 2) as [NUMVENDORMANAGEDSEGMENTS],
    (select count([ID]) from dbo.[MKTSEGMENTATIONPACKAGE] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [NUMPACKAGES],
     case when @CURRENCYCODE = 1 then [MKTSEGMENTATIONBUDGET].[ORGANIZATIONBUDGETAMOUNT] else [MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT] end as [BUDGETAMOUNT],
     case when @CURRENCYCODE = 1 then [MKTSEGMENTATIONBUDGET].[ORGANIZATIONFIXEDCOST] else [MKTSEGMENTATIONBUDGET].[FIXEDCOST] end as [FIXEDCOST],
    isnull([MKTSEGMENTATIONREFRESHPROCESS].[DATEREFRESHED], [MKTSEGMENTATION].[ACTIVATEDATE]) as [DATEREFRESHED],
    (select count([ID]) from dbo.[MKTSEGMENTATIONSEED] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [NUMSEEDS],
    (select count([TEST].[ID]) from dbo.[MKTSEGMENTATION] as [TEST] where [TEST].[PARENTSEGMENTATIONID] = [MKTSEGMENTATION].[ID]) as [NUMTESTMAILINGS],
    [MKTSEGMENTATION].[MAILDATE],
    [MKTSEGMENTATION].[HOUSEHOLDINGTYPECODE],
    [MKTSEGMENTATION].[HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD],
    [MKTSEGMENTATION].[HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS],
    [MKTSEGMENTATION].[HOUSEHOLDINGONERECORDPERHOUSEHOLD],
    [CURRENCY].[ISO4217],
    [CURRENCY].[DECIMALDIGITS],
    [CURRENCY].[CURRENCYSYMBOL],
    [CURRENCY].[SYMBOLDISPLAYSETTINGCODE],
    cast(case when [MKTSEGMENTATION].[ACTIVE] = 0 then dbo.[UFN_MKTSEGMENTATION_ISRECORDCOUNTCACHECURRENT]([MKTSEGMENTATION].[ID], 1) else 1 end as bit) as [ISRECORDCOUNTCACHECURRENT],
    (select count([ID]) from dbo.[MKTSEGMENTATIONSEGMENT] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID] and [EXCLUDE] = 0) as [ACTIVESEGMENTS],
    (select count([ID]) from dbo.[MKTSEGMENTATIONSEGMENT] where [SEGMENTATIONID] = [MKTSEGMENTATION].[ID] and [EXCLUDE] = 1) as [EXCLUSIONSEGMENTS]
  from dbo.[MKTSEGMENTATION]
  inner join dbo.[MKTSEGMENTATIONBUDGET] on [MKTSEGMENTATIONBUDGET].[ID] = [MKTSEGMENTATION].[ID]
  left join dbo.[MKTSEGMENTATIONREFRESHPROCESS] on [MKTSEGMENTATIONREFRESHPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  inner join dbo.[CURRENCY] on [CURRENCY].[ID] = case when @CURRENCYCODE = 1 then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]() else [MKTSEGMENTATIONBUDGET].[BASECURRENCYID] end
  where [MKTSEGMENTATION].[ID] = @SEGMENTATIONID;

  return 0;