Как удалить дубликаты элементов в древовидном списке? - PullRequest
0 голосов
/ 26 марта 2019

Я новичок в сервере sql, у меня есть отделы, и пользователь назначен для нескольких отделов, мне нужно получить список пользовательских отделов в виде дерева без дублирующихся элементов по sp.

Я устал преобразовывать дерево в плоский список в c #, но я хочу получить эти данные из sql правильно без использования кода C #.

-- get the tree node
    SELECT     UD_nUserID, UD_nDepartmentID
FROM         UserDepartments
WHERE UD_nUserID=@UD_nUserID

UNION 

SELECT DP_nManagerID AS UD_nUserID,DP_nID AS UD_nDepartmentID
FROM dbo.Departments
WHERE DP_nManagerID=@UD_nUserID AND  DP_bIsDeleted = 0
-- then get the items per node (in two differnt sps , which is not correct at all)
SELECT
     [DP_nID]
    , [DP_cName]
    , [DP_nManagerID]
    , [DP_nParentID]
    , [DP_nBranchID]
FROM
    [dbo].[Departments]
WHERE
        [DP_nID] = @DP_nID
        AND
        [DP_bIsDeleted] = 0

Мне нужно удалить дубликат из этого дерева:

show image  here

Не могли бы вы помочь мне написать полный sp, который возвращает все пользовательские отделы без дублирующихся элементов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...