UFN_QUERY_MKTSEGMENT

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN
@SITEFILTERMODE tinyint IN
@SITESSELECTED xml IN

Definition

Copy


CREATE function dbo.[UFN_QUERY_MKTSEGMENT]
(
  @CURRENTAPPUSERID uniqueidentifier,
  @SITEFILTERMODE tinyint = 0,
  @SITESSELECTED xml = null
)
returns table as
return 
(
  select
    [MKTSEGMENT].[ID],
    [MKTSEGMENT].[NAME] as [SEGMENTNAME],
    (select stuff((select ', ' + [MKTSEGMENTGROUP].[NAME]
                             from dbo.[MKTSEGMENTGROUP]
                             inner join dbo.[MKTGROUPSEGMENTS] on [MKTGROUPSEGMENTS].[SEGMENTGROUPID] = [MKTSEGMENTGROUP].[ID]
                             where [MKTGROUPSEGMENTS].[SEGMENTID] = [MKTSEGMENT].[ID]
                             order by [MKTSEGMENTGROUP].[NAME]
                             for xml path(''), type
                             ).value('.', 'varchar(max)')
                             , 1, 2, '')) as [GROUPNAME],
    [MKTSEGMENT].[CODE],
    [MKTSEGMENT].[DESCRIPTION],
    cast(
      case
          when exists(select top 1 1 from dbo.[MKTSEGMENTATIONSEGMENT] where [SEGMENTID] = [MKTSEGMENT].[ID])
            or exists(select top 1 1 from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] where [SEGMENTID] = [MKTSEGMENT].[ID])
            or exists(select top 1 1 from dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] where [SEGMENTID] = [MKTSEGMENT].[ID])
            or exists(select top 1 1 from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] where [SEGMENTID] = [MKTSEGMENT].[ID])
            then 1 
          else 0
        end as bit
    ) as [INUSE],
    (
        case 
            when [MKTSEGMENT].[ISHISTORICAL] = 1 then [MKTSEGMENT].[HISTORICALQUANTITY]
            when [MKTSEGMENT].[SEGMENTTYPECODE] <> 2 then [IDSETREGISTER].[NUMROWS]
            else [MKTSEGMENTLIST].[TOTALRECORDCOUNT] 
        end
    ) as [NUMROWS],
    coalesce([MKTSEGMENT].[DATEREFRESHED], [IDSETREGISTER].[DATECHANGED], [MKTSEGMENTLIST].[DATECHANGED], [MKTSEGMENT].[DATECHANGED]) as [DATEREFRESHED],
    [MKTSEGMENTREFRESHPROCESS].[ID] as [SEGMENTREFRESHPROCESSID],
    [MKTSEGMENT].[SEGMENTTYPECODE],
    [MKTSEGMENT].[SEGMENTTYPE] + (case when [MKTSEGMENT].[ISHISTORICAL] = 1 then ' (Historical)' else '' end) as [SEGMENTTYPE],
    [MKTSEGMENTCATEGORYCODE].[DESCRIPTION] as [CATEGORY],
    cast((case when [MKTSEGMENTLIST].[PARENTSEGMENTID] is null then 0 else 1 end) as bit) as [ISCHILDLISTSEGMENT],
    isnull([SITE].[NAME], '') as [SITE],
    [MKTSEGMENT].[ISHISTORICAL] as [ISHISTORICAL]
    /*#EXTENSION*/
  from
    dbo.[MKTSEGMENT]
    left join dbo.[MKTSEGMENTLIST] ON [MKTSEGMENT].[CURRENTSEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
    left join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
    left join dbo.[MKTSEGMENTCATEGORYCODE] on [MKTSEGMENTCATEGORYCODE].[ID] = [MKTSEGMENT].[SEGMENTCATEGORYCODEID]
    left join dbo.[IDSETREGISTER] on [IDSETREGISTER].[ID] = [MKTSEGMENT].[IDSETREGISTERID]
    left join dbo.[MKTSEGMENTREFRESHPROCESS] on [MKTSEGMENTREFRESHPROCESS].[SEGMENTID] = [MKTSEGMENT].[ID]
    left outer join dbo.[SITE] on [SITE].[ID] = [MKTSEGMENT].[SITEID]
  where
    ([MKTSEGMENTLIST].[ID] is null or [MKTLIST].[ISINACTIVE] = 0)
    and [MKTSEGMENT].[SEGMENTTYPECODE] not in (6, 7, 8, 9)
    /* Exclude System records */
    and [MKTSEGMENT].[ISSYSTEM] = 0
    and (
      (select [ISSYSADMIN] from dbo.[APPUSER] where [ID] = @CURRENTAPPUSERID) = 1
      or
      exists(
        select 1
        from dbo.[UFN_SITESFORUSERONFEATURE](@CURRENTAPPUSERID, '4f668d50-1c13-4545-abec-4a4eccff1d63', 10)
        where [SITEID] = [MKTSEGMENT].[SITEID] or ([SITEID] is null and [MKTSEGMENT].[SITEID] is null)
      )
    )
    and (@SITEFILTERMODE = 0 or [MKTSEGMENT].[SITEID] in (select [SITEID] from dbo.[UFN_SITE_BUILDDATALISTSITEFILTER](@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)))
)