USP_DATALIST_MKTSEGMENTBYGROUP
Displays a list of all segments by group.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTID | uniqueidentifier | IN | Segment |
@GROUPID | uniqueidentifier | IN | Group |
@SEGMENTTYPECODE | tinyint | IN | Type |
@SEGMENTCATEGORYCODEID | uniqueidentifier | IN | Category |
@SITEFILTERMODE | tinyint | IN | Sites |
@SITESSELECTED | xml | IN | Sites selected |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@INCLUDEHISTORICAL | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_MKTSEGMENTBYGROUP]
(
@SEGMENTID uniqueidentifier = null,
@GROUPID uniqueidentifier = null,
@SEGMENTTYPECODE tinyint = null,
@SEGMENTCATEGORYCODEID uniqueidentifier = null,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@INCLUDEHISTORICAL bit = null
)
as
set nocount on;
with [INUSE_CTE] ([SEGMENTID], [INUSE]) as (
select [MKTSEGMENT].[ID],
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]
from dbo.[MKTSEGMENT]
)
select
[MKTSEGMENT].[ID] as [SEGMENTID],
[MKTSEGMENT].[NAME] as [SEGMENTNAME],
[MKTSEGMENTGROUP].[ID] as [GROUPID],
[MKTSEGMENTGROUP].[NAME] as [GROUPNAME],
[MKTSEGMENT].[CODE],
[MKTSEGMENT].[DESCRIPTION],
[INUSE_CTE].[INUSE],--replaced dbo.[UFN_MKTSEGMENT_ISINUSE]([MKTSEGMENT].[ID])
(
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]
from dbo.[MKTSEGMENT]
inner join [INUSE_CTE] on [MKTSEGMENT].[ID]=[INUSE_CTE].[SEGMENTID]
left join dbo.[MKTSEGMENTLIST] ON [MKTSEGMENT].[CURRENTSEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
left join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
left join dbo.[MKTGROUPSEGMENTS] on [MKTSEGMENT].[ID] = [MKTGROUPSEGMENTS].[SEGMENTID]
left join dbo.[MKTSEGMENTGROUP] on [MKTGROUPSEGMENTS].[SEGMENTGROUPID] = [MKTSEGMENTGROUP].[ID]
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)
and (@SEGMENTTYPECODE is null or [MKTSEGMENT].[SEGMENTTYPECODE] = @SEGMENTTYPECODE)
and (@GROUPID is null or [MKTSEGMENTGROUP].[ID] = @GROUPID)
and (@SEGMENTCATEGORYCODEID is null or [MKTSEGMENT].[SEGMENTCATEGORYCODEID] = @SEGMENTCATEGORYCODEID)
and (@SEGMENTID is null or [MKTSEGMENT].[ID] = @SEGMENTID)
/* Exclude appeal mailing segments */
and not exists(select 1
from dbo.[APPEALMAILING]
inner join dbo.[MKTSEGMENTATIONSEGMENT] on [MKTSEGMENTATIONSEGMENT].[ID] = [APPEALMAILING].[MKTSEGMENTATIONSEGMENTID]
where [MKTSEGMENTATIONSEGMENT].[SEGMENTID] = [MKTSEGMENT].[ID])
/* Exclude System records */
and [MKTSEGMENT].[ISSYSTEM] = 0
and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) 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)))
and ((@INCLUDEHISTORICAL = 1 or @INCLUDEHISTORICAL is null ) or (@INCLUDEHISTORICAL = 0 and [MKTSEGMENT].[ISHISTORICAL] = 0))
order by [MKTSEGMENTGROUP].[NAME], [MKTGROUPSEGMENTS].[SEQUENCE], [MKTSEGMENT].[NAME];
return 0;