ComeçarComece de graça

Quem é o seu gerente?

Neste exercício, vamos usar o conjunto de dados de uma organização de TI fornecido na tabela employee. A tabela tem os campos ID (número de identificação do funcionário), Name (nome do funcionário) e Supervisor (número de identificação do supervisor).

A organização de TI é composta por diferentes cargos e níveis.

A section of the entire hierarchy

A organização tem um diretor de TI (ID=1, Heinz Griesser, Supervisor=0) com muitos subordinados. Abaixo do diretor de TI, está o gerente de arquitetura de TI (ID=10, Andreas Sternig, Supervisor=1) com três subordinados. Para Andreas Sternig, Supervisor=1, que é o ID do diretor de TI.

Primeiro, queremos responder à pergunta: Quem são os supervisores de cada funcionário?

Vamos resolver esse problema consultando o conjunto de dados de forma recursiva.

Este exercício faz parte do curso

Consultas Hierárquicas e Recursivas no SQL Server

Ver curso

Instruções do exercício

  • Crie uma CTE com o nome employee_hierarchy.
  • Selecione as informações do diretor de TI como passo inicial da CTE, filtrando pelo Supervisor dele.
  • Faça um join com employee para obter o nome do gerente.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

-- Create the CTE employee_hierarchy
WITH ___ AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor
	FROM employee
  	-- Start with the IT Director
	WHERE ___ = ___
	UNION ALL
	SELECT 
  		emp.ID,
  		emp.NAME,
  		emp.Supervisor
	FROM employee emp
  		JOIN employee_hierarchy
  		ON emp.Supervisor = employee_hierarchy.ID)
    
SELECT 
    cte.Name as EmployeeName,
    emp.Name as ManagerName
FROM employee_hierarchy as cte
	JOIN employee as emp
	-- Perform the JOIN on Supervisor and ID
	ON cte.___ = emp.___;
Editar e executar o código