UFN_MKTSEGMENT_GETSELECTIONS
Returns a table containing the selections for a segment.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.[UFN_MKTSEGMENT_GETSELECTIONS]
(
@SEGMENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier
)
returns table
as
return
(
select
[MKTSEGMENTSELECTION].[ID],
[MKTSEGMENTSELECTION].[SELECTIONID],
[IDSETREGISTER].[NAME],
[IDSETREGISTER].[DESCRIPTION],
[RECORDTYPE].[NAME] as [RECORDTYPE],
[RECORDTYPE].[ID] as [RECORDTYPEID],
coalesce([ADHOCQUERY].[QUERYVIEWCATALOGID], [SMARTQUERYINSTANCE].[SMARTQUERYCATALOGID], [MKTSEGMENTLIST].[QUERYVIEWCATALOGID]) as [QUERYVIEWID],
isnull([ADHOCQUERY].[ID], [SMARTQUERYINSTANCE].[ID]) as [QUERYID],
(case when [ADHOCQUERY].[ID] is not null then 1 else case when [SMARTQUERYINSTANCE].[ID] is not null then 2 else 0 end end) as [QUERYTYPE],
convert(bit,
case when [ADHOCQUERY].[QUERYVIEWCATALOGID] is not null and (select [ROOTOBJECT] from dbo.[QUERYVIEWCATALOG] where [ID] = [ADHOCQUERY].[QUERYVIEWCATALOGID]) = 1
then dbo.[UFN_SECURITY_APPUSER_CANACCESS_QUERYVIEW](@CURRENTAPPUSERID, [ADHOCQUERY].[QUERYVIEWCATALOGID])
when [SMARTQUERYINSTANCE].[SMARTQUERYCATALOGID] is not null
then case when (select [ISSYSADMIN] from dbo.[APPUSER] where [ID] = @CURRENTAPPUSERID) = 1
then 1
else case when exists(select top 1 1 from dbo.[UFN_SECURITY_GETGRANTEDSMARTQUERIESFORUSER](@CURRENTAPPUSERID) where [SMARTQUERYCATALOGID] = [SMARTQUERYINSTANCE].[SMARTQUERYCATALOGID])
then 1
else 0
end
end
else 0
end
) as [CANEDIT],
convert(bit,
case when [ADHOCQUERY].[ID] is not null
then dbo.[UFN_SECURITY_APPUSER_GRANTED_ADHOCQUERYINSTANCE_IN_SYSTEMROLE](@CURRENTAPPUSERID, [ADHOCQUERY].[ID])
when [SMARTQUERYINSTANCE].[ID] is not null
then dbo.[UFN_SECURITY_APPUSER_GRANTED_SMARTQUERYINSTANCE_IN_SYSTEMROLE](@CURRENTAPPUSERID, [SMARTQUERYINSTANCE].[ID])
else 1
end
) as [USERGRANTEDRIGHTS]
from dbo.[MKTSEGMENTSELECTION]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTSELECTION].[SEGMENTID]
inner join dbo.[IDSETREGISTER] on [IDSETREGISTER].[ID] = [MKTSEGMENTSELECTION].[SELECTIONID]
inner join dbo.[RECORDTYPE] on [RECORDTYPE].[ID] = [IDSETREGISTER].[RECORDTYPEID]
left join dbo.[IDSETREGISTERADHOCQUERY] on [IDSETREGISTERADHOCQUERY].[IDSETREGISTERID] = [IDSETREGISTER].[ID]
left join dbo.[ADHOCQUERY] on [ADHOCQUERY].[ID] = [IDSETREGISTERADHOCQUERY].[ADHOCQUERYID]
left join dbo.[IDSETREGISTERSMARTQUERYINSTANCE] on [IDSETREGISTERSMARTQUERYINSTANCE].[IDSETREGISTERID] = [IDSETREGISTER].[ID]
left join dbo.[SMARTQUERYINSTANCE] on [SMARTQUERYINSTANCE].[ID] = [IDSETREGISTERSMARTQUERYINSTANCE].[SMARTQUERYINSTANCEID]
left join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
where [MKTSEGMENTSELECTION].[SEGMENTID] = @SEGMENTID
);