M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR
1) El departamento de recursos humanos necesita una consulta que solicite al usuario el apellido de un empleado. A continuación, la consulta muestra el apellido y la fecha de contratación de cualquier empleado en el mismo departamento del empleado cuyo nombre se proporciona (excepto ese empleado). Por ejemplo, si el usuario introduce Zlotkey , se buscarán todos los empleados que trabajen con Zlotkey (excepto Zlotkey).
UNDEFINE Enter_name
SELECT last_name, hire_date
FROM employees
WHERE department_id = (SELECT department_id
FROM employees
WHERE last_name = '&&Enter_name')
AND last_name <> '&Enter_name';
2) Cree un informe que muestre el número de empleado, apellido y salario de todos los empleados que ganan más del salario medio. Ordene los resultados en orden ascendente de salario.
SELECT employee_id, last_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary)
FROM employees)
ORDER BY salary;
3) Escriba una consulta que muestre el número de empleado y el apellido de todos los empleados que trabajan en un departamento con un empleado cuyo apellido contiene una "u".
Ejecute la consulta.
SELECT employee_id, last_name
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name like '%u%');
4) El departamento de recursos humanos necesita un informe que muestre el apellido, número de departamento e ID de cargo de todos los empleados cuyo ID de ubicación de departamento sea 1700.
SELECT last_name, department_id, job_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE location_id = 1700);
Modifique la consulta para que se solicite al usuario un ID de ubicación.
SELECT last_name, department_id, job_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE location_id = &Enter_location);
5) Cree un informe para el departamento de recursos humanos que muestre el apellido y el salario de cada empleado que realice informes para Steven King.
SELECT last_name, salary
FROM employees
WHERE manager_id = (SELECT employee_id
FROM employees
WHERE first_name='Steven' AND last_name = 'King');
6) Cree un informe para el departamento de recursos humanos que muestre el número de departamento, apellido e ID de cargo de cada empleado del departamento Executive.
SELECT department_id, last_name, job_id
FROM employees
WHERE department_id = (SELECT department_id
FROM departments
WHERE department_name = 'Executive');
7) Cree un informe que muestre una lista de todos los empleados cuyo salario sea mayor que el salario de los empleados del departamento 60.
SELECT last_name FROM employees
WHERE salary > ALL (SELECT salary
FROM employees
WHERE department_id=60);
Si tiene tiempo, realice el siguiente ejercicio:
8) Modifique la consulta del ejercicio 3 para mostrar el número de empleado, apellido y salario de todos los empleados que ganan más del salario medio y que trabajan en un departamento con cualquier empleado cuyo apellido contiene una "u".
SELECT employee_id, last_name, salary FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name like '%u%')AND salary > (SELECT AVG(salary)
FROM employees);