UFN_REVENUE_SITE_GETNAMEHIERARCHYFROMREVENUEID
Gets the string representing the site hierarchy from a site ID
Return
Return Type |
---|
nvarchar(max) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_SITE_GETNAMEHIERARCHYFROMREVENUEID(
@REVENUEID uniqueidentifier
)
returns nvarchar(max)
as begin
declare @DESIGNATIONLEVEL uniqueidentifier
set @DESIGNATIONLEVEL = [dbo].[UFN_DESIGNATIONLEVEL_GETIDFROMREVENUEID](@REVENUEID)
if (@DESIGNATIONLEVEL is null)
return ''
declare @SITEID uniqueidentifier
select
@SITEID = [DESIGNATIONLEVEL].[SITEID]
from dbo.[DESIGNATIONLEVEL]
where
[DESIGNATIONLEVEL].[ID] = @DESIGNATIONLEVEL
if (@SITEID is null)
return ''
declare @ACCUM nvarchar(max) = ''
declare @CHILD hierarchyid
declare @PARENT hierarchyid
--Base case
select
@ACCUM = [SITE].[NAME],
@CHILD = [SITE].[HIERARCHYPATH]
from dbo.[SITE]
where [SITE].ID = @SITEID
-- Get Parents
while(@CHILD.GetAncestor(1) is not NULL)
begin
select
@ACCUM = [SITE].[NAME]+' / '+@ACCUM,
@PARENT = [SITE].[HIERARCHYPATH]
from dbo.[SITE]
where [SITE].[HIERARCHYPATH] = @CHILD.GetAncestor(1)
set @CHILD = @PARENT
set @PARENT = null
continue
end
return @ACCUM
end