menu

miércoles, diciembre 28, 2016

SQL_ORacle_tema_8

Práctica 8-1: Uso de los peradores de definición

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 dedinición para crear este informe.

select country_id, country_name from countries
minus
select country_id, country_name from countries
join locations using (country_id) join departments using (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) or (department_id=50) or (department_id=20);
Forma corecta para el ejercicio
select distinct job_id, department_id from employees
where (department_id=10) 
union
select distinct job_id, department_id from employees
where (department_id=50)
union
select distinct 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 distinct 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 que 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) from employees
union
select to_char(null), department_id, department_name from departments;

No hay comentarios:

Publicar un comentario