Отчеты
14
Сен
0

Иерархия пользователей с помощью SQL

Ниже Вы найдете SQL-запрос, который с помощью Common Table Expressions (CTE) поможет Вам прямо в SQL Management Studio быстро получить иерархию Ваших пользователей CRM:

WITH StaffLevels (Id, Manager, Staff, Hierarchy, ParentId, Level) AS
(
	-- Base case
	SELECT
		systemuserid,
		CONVERT(VARCHAR(255), parentsystemuseridname) ParentDescription,
		CONVERT(VARCHAR(255), REPLICATE('- ', 1)) + FullName Staff,
		CONVERT(VARCHAR(255), REPLICATE('- ', 1)) + FullName Hierarchy,
		parentsystemuserid,
		1 Level
	FROM
		FilteredSystemUser
	WHERE
		parentsystemuserid IS NULL
		and FullName NOT IN ('INTEGRATION','SYSTEM')
		
	UNION ALL
	-- Recursive step

	SELECT
		fsu.systemuserid,
		CONVERT(VARCHAR(255), sl.Staff),
		CONVERT(VARCHAR(255), REPLICATE('- ', sl.Level + 1 ) + ' ') + fsu.FullName Staff,
		CONVERT(VARCHAR(255), sl.Hierarchy + REPLICATE(' -', 1) + ' ') + fsu.FullName Hierarchy,
		fsu.parentsystemuserid,
		sl.Level + 1 Level
	FROM
		FilteredSystemUser fsu
			INNER JOIN StaffLevels sl ON fsu.parentsystemuserid = sl.Id
)

SELECT
	Staff 'Пользователь',
	Manager 'Руководитель',	
	Hierarchy 'Иерархия',
	Level 'Уровень'
FROM StaffLevels
ORDER BY Staff DESC


Комментарии (0)

*

code