USP_MKTSEGMENTSREFRESH_GETSEGMENTSELECTIONS
Returns all segments and their selections to be refreshed.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTID | uniqueidentifier | IN | |
@SEGMENTGROUPID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTSREFRESH_GETSEGMENTSELECTIONS]
(
@SEGMENTID uniqueidentifier = null,
@SEGMENTGROUPID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
select
[MKTSEGMENT].[ID],
[MKTSEGMENT].[NAME],
(case when [ADHOCQUERY].[ID] is null then case when [SMARTQUERYINSTANCE].[ID] is null then case when [IDSETREGISTERDYNAMICIDSET].[DYNAMICIDSETREGISTERID] is null then 3 else 4 end else 2 end else 1 end) as [QUERYTYPE],
coalesce([ADHOCQUERY].[ID], [SMARTQUERYINSTANCE].[ID], [IDSETREGISTERDYNAMICIDSET].[DYNAMICIDSETREGISTERID], [IDSETREGISTER].[ID]) as [QUERYID],
coalesce([ADHOCQUERY].[NAME], [SMARTQUERYINSTANCE].[NAME], [IDSETREGISTER].[NAME]) as [QUERYNAME],
[MKTSEGMENTREFRESHPROCESS].[ID] as [PARAMETERSETID]
from dbo.[MKTSEGMENT]
inner join dbo.[MKTSEGMENTSELECTION] on [MKTSEGMENTSELECTION].[SEGMENTID] = [MKTSEGMENT].[ID]
inner join dbo.[IDSETREGISTER] on [IDSETREGISTER].[ID] = [MKTSEGMENTSELECTION].[SELECTIONID]
left outer join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
left outer join dbo.[MKTSEGMENTREFRESHPROCESS] on [MKTSEGMENTREFRESHPROCESS].[SEGMENTID] = [MKTSEGMENT].[ID]
left outer join dbo.[IDSETREGISTERADHOCQUERY] on [IDSETREGISTERADHOCQUERY].[IDSETREGISTERID] = [IDSETREGISTER].[ID]
left outer join dbo.[ADHOCQUERY] on [ADHOCQUERY].[ID] = [IDSETREGISTERADHOCQUERY].[ADHOCQUERYID]
left outer join dbo.[IDSETREGISTERSMARTQUERYINSTANCE] on [IDSETREGISTERSMARTQUERYINSTANCE].[IDSETREGISTERID] = [IDSETREGISTER].[ID]
left outer join dbo.[SMARTQUERYINSTANCE] on [SMARTQUERYINSTANCE].[ID] = [IDSETREGISTERSMARTQUERYINSTANCE].[SMARTQUERYINSTANCEID]
left outer join dbo.[IDSETREGISTERDYNAMICIDSET] on [IDSETREGISTERDYNAMICIDSET].[STATICIDSETREGISTERID] = [IDSETREGISTER].[ID]
left outer join dbo.[MKTGROUPSEGMENTS] on [MKTGROUPSEGMENTS].[SEGMENTID] = [MKTSEGMENT].[ID]
where [IDSETREGISTER].[STATIC] = 1
and ([MKTSEGMENT].[SEGMENTTYPECODE] <> 2 or [MKTSEGMENTLIST].[PARENTSEGMENTID] is not null) -- exclude list segments, but not child list segments
and (@SEGMENTID is null or [MKTSEGMENT].[ID] = @SEGMENTID)
and (@SEGMENTGROUPID is null or [MKTGROUPSEGMENTS].[SEGMENTGROUPID] = @SEGMENTGROUPID)
and (@SEGMENTID is not null or @SEGMENTGROUPID is not null or -- check site security if this call is for refresh ALL segments
(dbo.[UFN_APPUSER_ISSYSADMIN](@CURRENTAPPUSERID) = 1 or exists (select top 1 1 from dbo.[UFN_SITESFORUSERONFEATURE](@CURRENTAPPUSERID, 'F2E4036B-A903-47A2-A9D3-E0E106080596', 4) where [SITEID] = [MKTSEGMENT].[SITEID] or ([SITEID] is null and [MKTSEGMENT].[SITEID] is null))))
-- 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])
order by [MKTSEGMENT].[ID];
return 0;