Sei sulla pagina 1di 7

Implementacin y gestin de base de datos - 2016-01

Gua de ejercicios de laboratorio N 5

NOTA: Para desarrollar los ejercicios, utilizar las siguientes tablas del esquema
HR:

JOBS
REGIONS
COUNTRIES
LOCATIONS
DEPARTMENTS
EMPLOYEES
JOB_HISTORY
1. Mostrar los pases cuyo cdigo y nombre no empiezan con la misma letra. No
incluir la regin.
select * from countries where upper (substr(country_name,1,1))<>
upper(substr(country_id,1,1))

2. Mostrar el cdigo y nombre de los departamentos cuyo nombre empieza con


la letra C y termina con la letra G.
select * from DEPARTMENTS WHERE upper(DEPARTMENT_NAME) like upper('c%')
AND upper(DEPARTMENT_NAME) like upper('%g') ;

3.
que

Mostrar los
empleados
no tienen

departamento o gerente asignado.


select * from EMPLOYEES where MANAGER_ID is null or DEPARTMENT_ID is
null

4. Mostrar el cdigo, ttulo, sueldo mximo, sueldo mnimo y la diferencia entre


el sueldo mnimo y el sueldo mximo de los puestos que corresponden a
gerentes, ordenada por sueldo mnimo, sueldo mximo y ttulo del puesto.
5. Mostrar las oficinas ubicadas en Japn, Alemania y Suiza, ordenada por pas y
ciudad. No incluir el estado o provincia.
select pais.COUNTRY_NAME,ciudad.CITY ,ciudad.STREET_ADDRESS from
countries pais join locations ciudad on pais.COUNTRY_ID=ciudad.COUNTRY_ID
where pais.COUNTRY_NAME in ('Japan','Switzerland','Germany') order by
pais.COUNTRY_NAME;

6. Mostrar los departamentos que no tienen gerente asignado.


select * from departments
where manager_id is null

7. Mostrar una relacin de departamentos. En aquellos que no tienen gerente


asignado, mostrar Sin gerente en la columna correspondiente.
select department_id,department_name,location_id,
case
when manager_id is null then 'Sin Gerente'
end Manager_id
from departments;

8. Mostrar los empleados de los departamentos 20, 40, 60 y 80, que ganan
entre US$ 5,000 y 7,000. Mostrar el cdigo, nombre, apellido, correo
electrnico y sueldo de cada empleado, ordenando la lista por sueldo en
forma descendente.
select
emple.EMPLOYEE_ID,emple.FIRST_NAME,emple.LAST_NAME,emple.EMAIL,emple.
SALARY
from employees emple join departments depar
on depar.DEPARTMENT_ID=emple.DEPARTMENT_ID
where depar.DEPARTMENT_ID in (20,40,60,80)
and salary BETWEEN 5000 and 7000
order by emple.SALARY desc;

9. Mostrar el nombre del


empleado y el nombre del
departamento de los
empleados que trabajan en el
departamento de Ventas
(Sales).
select emple.FIRST_NAME
,depar.department_name from
departments depar join employees
emple
on
depar.DEPARTMENT_ID=emple.DEPARTMENT_ID
where depar.DEPARTMENT_NAME='Sales';

10.Mostrar la historia de los puestos de los empleados de los departamentos 80,


90 y 110. Presentar el nombre del empleado, el ttulo del puesto, el nombre
del departamento, la fecha de inicio, la fecha de fin y la duracin en das.
select emple.FIRST_NAME,tra.JOB_TITLE,depar.DEPARTMENT_NAME,
his.START_DATE,his.END_DATE, (to_date(his.END_DATE)
-to_date(his.START_DATE)) as dias_laborado
from job_history his join jobs tra
on his.JOB_ID=tra.JOB_ID join employees emple
on emple.JOB_ID=tra.JOB_ID join departments depar
on depar.DEPARTMENT_ID=emple.DEPARTMENT_ID
where depar.DEPARTMENT_ID in (80,90,110)

11.Mostrar una relacin de los empleados que trabajan en Europa. Presentar el


nombre del empleado, la ciudad y pas en que trabaja y el nombre de la
regin.
select
emple.FIRST_NAME,ciudad.CITY,pais.COUNTRY_NAME,region.REGION_NAME
from regions region join countries pais
on region.REGION_ID=pais.REGION_ID join locations ciudad

on pais.COUNTRY_ID=ciudad.COUNTRY_ID join departments depar


on depar.LOCATION_ID=ciudad.LOCATION_ID join employees emple
on emple.DEPARTMENT_ID=depar.DEPARTMENT_ID
where region.REGION_NAME='Europe';

12.Mostrar los empleados que trabajan en Estados Unidos y ganan ms de US$


4000 o que trabajan en el Reino Unido y ganan menos de US$ 9000 o que
trabajan como Operarios de almacn (Stock clerk). Presentar el nombre del
empleado, la ciudad y pas en que trabaja y el nombre de la regin.

13.El bono de un empleado se calcula de la siguiente manera:

Si tiene asignado un porcentaje de comisin, es su sueldo multiplicado por


el porcentaje de comisin
Si no tiene asignado un porcentaje de comisin, es de US$ 5,000

Mostrar una relacin de los empleados cuyo sueldo es mayor que US $


6,000 , mostrando su nombre, apellido, sueldo, porcentaje de comisin o el
texto Sin comisin y bono. Si el porcentaje de comisin, por ejemplo, fuera
0.20, debe aparecer como 20.00 %.

Potrebbero piacerti anche