0% encontró este documento útil (0 votos)
106 vistas2 páginas

Consulta de Directores y Empleados

El documento contiene 18 consultas SQL para una base de datos de empleados y departamentos. Las consultas muestran datos de empleados y directores, agregan y actualizan registros, realizan uniones y joins entre tablas, y aplican filtros y agregaciones.

Cargado por

Bernardo Ortiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
106 vistas2 páginas

Consulta de Directores y Empleados

El documento contiene 18 consultas SQL para una base de datos de empleados y departamentos. Las consultas muestran datos de empleados y directores, agregan y actualizan registros, realizan uniones y joins entre tablas, y aplican filtros y agregaciones.

Cargado por

Bernardo Ortiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

--1. Mostrar el código, nombre y apellidos de todos los directores.

select idempleado, nombre, apellido


from empleados
where director is not null

--2. Mostrar los datos de los empleados que no tienen jefes.


select idempleado, nombre, apellido,cargo,salario
from empleados
where director is null

--3. Mostrar el nombre y apellidos de cada director, junto con la capacidad del
--departamento en el que se encuentra.
select nombre,apellido, capacidad
from empleados as emp
inner join departamento as dep
on emp.idDepartamento = dep.idDepartamento

--4. Mostrar el número de directores que hay en cada departamento.


select count(director) as cantidad_de_directores, dNombre
from empleados as em
inner join departamento as dep
on em.idDepartamento = dep.idDepartamento
group by dNombre

--5. Mostrar los datos de los directores cuyos jefes no tienen jefes.
select idempleado, nombre, apellido,cargo,salario
from empleados
where idempleado in (select idempleado from empleados where idempleado is null)

--6. Mostrar los nombres y apellidos de los directores junto con los de su jefe.

--7. Mostrar el número de departamento que están sobre utilizados.


select dNombre, count(em.idDepartamento)
from empleados em
inner join departamento as dep
on em.idDepartamento = dep.idDepartamento
where capacidad < (select count(em.idDepartamento))

--8. Añadir un nuevo empleado llamado Paco Perez, código 28301700, sin jefe, y
situado
-- en el despacho 124.
insert into empleados
values(28301700, 'Paco', 'Perez', null,null,null,null,null,20 )
--9. Asignar a todos los empleados apellidados Perez un nuevo jefe con código
74568521.
update empleados set Director = 74568521
where apellido = 'Perez'

--10. Despedir a todos los directores, excepto a los que no tienen jefe.
update Empleados set Cargo = 'Despedido'
where Cargo = Director and Director is null

--11. Obtener todos los datos de los empleados que trabajan para el departamento 10
y
--para el departamento 40.
select IdEmpleado, Nombre, Apellido,Cargo,Director, Salario, Comision
from empleados
where IdDepartamento = 10
union
select IdEmpleado, Nombre, Apellido,Cargo,Director, Salario, Comision
from empleados
where IdDepartamento = 40

--12. Obtener los nombres y apellidos de los empleados que trabajen en departamentos
--cuyo presupuesto sea mayor de 60.000.
select Nombre, Apellido from Empleados as e
inner join Departamento as d
on Presupuesto < 60000

--13. Obtener los datos de los departamentos cuyo presupuesto es superior al


presupuesto
--medio de todos los departamentos.
select IdDepartamento, DNombre,Localizacion,Capacidad, Presupuesto
from( select 1 as id,IdDepartamento, DNombre,Localizacion,Capacidad, Presupuesto
from Departamento
) as a
inner join(
select max(1) as id,AVG(Presupuesto ) as Medio_Presupuesto
from Departamento
)as b on a.id = b.id
where a.Presupuesto> Medio_Presupuesto

--14. Obtener los nombres (únicamente los nombres) de los departamentos que tienen
más
select dNombre
from departamento as dep
inner join empleados as em
on dep.idDepartamento = em.idDepartamento
group by dNombre
having count(em.idDepartamento) > 2

--15. Obtener un listado completo de empleados, incluyendo el nombre y apellidos del


--empleado junto al nombre y presupuesto de su departamento.
select Nombre, Apellido, DNombre, Presupuesto from Empleados as e
inner join Departamento as d
on e.IdDepartamento = d.IdDepartamento

--16. Aplicar un recorte presupuestario del 10 % a todos los departamentos.


select (0.1 * Presupuesto) as Presupuestario
from Departamento
--17. Despedir a todos los empleados que trabajen para departamentos cuyo salario
sea
--superior al presupuesto.
update Empleados set Cargo = 'Despedido'
where Salario > (select Presupuesto from Departamento)

--18. Mostrar el nombre y apellidos de cada director, junto con la capacidad del
--departamento en el que se encuentra.
select Nombre, Apellido, DNombre from Empleados as e
inner join Departamento as d
on Cargo = 'Director' and e.IdDepartamento = d.IdDepartamento

También podría gustarte