Quem é meu supervisor?
Neste exercício, queremos obter o caminho do chefe no topo da hierarquia até os funcionários na base. Para isso, precisamos juntar as informações obtidas em cada passo em um único campo. Você pode fazer isso combinando os IDs usando CAST() para converter de número para string. Um exemplo é CAST(ID AS VARCHAR(MAX)) para converter ID do tipo número para o tipo char.
A tarefa agora é encontrar o caminho para os funcionários Chris Feierabend com ID=18 e Jasmin Mentil com ID=16 até o topo da organização. A saída deve ser assim: boss_first_level -> boss_second_level .... Devem ser selecionados os IDs dos funcionários, e não seus nomes.
Este exercício faz parte do curso
Consultas Hierárquicas e Recursivas no SQL Server
Instruções do exercício
- Inicialize
Pathcom oIDdo supervisor (0) e a condição inicial da recursão. - Use
UNIONno membro âncora e defina os campos do membro recursivo (ID,Name,Supervisor). - Adicione o ID do supervisor
SupervisoraoPatha cada passo. - Selecione os IDs dos funcionários
Chris FeierabendeJasmin Mentilna CTE.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
WITH employee_Hierarchy AS (
SELECT
ID,
NAME,
Supervisor,
-- Initialize the Path with CAST
___('___' AS VARCHAR(MAX)) as Path
FROM employee
WHERE Supervisor = 0
-- UNION the anchor query
___ ALL
-- Select the recursive query fields
SELECT
emp.___,
emp.___,
emp.___,
-- Add the supervisor in each step. CAST the supervisor.
Path + '->' + ___(emp.___ AS VARCHAR(MAX))
FROM employee emp
INNER JOIN employee_Hierarchy
ON emp.Supervisor = employee_Hierarchy.ID
)
SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;