M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR

De wikiserver
Dreceres ràpides: navegació, cerca

1) El departamento de recursos humanos necesita una lista de ID de departamento que no contienen el ID de cargo ST_CLERK . Utilice los operadores de definición para crear este informe.

SELECT department_id
FROM departments
MINUS
SELECT department_id
FROM employees
WHERE job_id = 'ST_CLERK';

2) El departamento de recursos humanos necesita una lista de países que no tienen ningún departamento. Muestre el ID de país y el nombre de los países. Utilice los operadores de definición para crear este informe.

SELECT country_id,country_name
FROM countries
MINUS
SELECT l.country_id,c.country_name
FROM locations l JOIN countries c
ON (l.country_id = c.country_id)
JOIN departments d
ON d.location_id=l.location_id;

3) Cree una lista de cargos para los departamentos 10, 50 y 20, en ese orden. Muestre los ID de cargo y departamento mediante los operadores de definición.

SELECT distinct job_id, department_id
FROM employees
WHERE department_id = 10
UNION ALL
SELECT DISTINCT job_id, department_id
FROM employees
WHERE department_id = 50
UNION ALL
SELECT DISTINCT job_id, department_id
FROM employees
WHERE department_id = 20;

En aquesta versió també:

SELECT job_id, department_id
FROM employees
WHERE department_id=10
UNION
SELECT job_id, department_id
FROM employees
WHERE department_id=50
UNION
SELECT job_id, department_id
FROM employees
WHERE department_id=20;

4) Cree un informe que muestre los ID de empleado y de cargo de los empleados que actualmente tienen un puesto que es el mismo que tenían cuando fueron contratados (es decir, han cambiado de cargo pero ahora han vuelto a su puesto original).

SELECT employee_id,job_id
FROM employees
INTERSECT
SELECT employee_id,job_id
FROM job_history;

5) El departamento de recursos humanos necesita un informe con las siguientes especificaciones:

  • ID de departamento y apellido de todos los empleados de la tabla EMPLOYEES, independientemente de si pertenecen o no a un departamento.
  • El nombre e ID de departamento de todos los departamentos de la tabla DEPARTMENTS , independientemente de si hay o no empleados trabajando en dichos departamentos.

Para ello, escriba una consulta compuesta.

SELECT last_name,department_id,TO_CHAR(null) department_name
FROM employees
UNION
SELECT TO_CHAR(null),department_id,department_name
FROM departments;