Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Solucion de Ejerciios SQL
Solucion de Ejerciios SQL
--TEMA NRO. 3
--Se desea conocer cuntos empleados supervisa cada jefe. Para ello se necesita o
btener un listado con el cdigo y
--el nombre de cada jefe, junto al nmero de empleados que supervisa directamente.
Como pueden haber
--empleados sin jefe, para stos se indicar slo el nmero de ellos, y los valores rest
antes (cdigo y nombre del --jefe) se dejarn --como nulos.
--TEMA NRO. 4
--Lista los empleados que tengan el mayor salario de su departamento, mostrando
el nombre del empleado, su salario y el nombre del --departamento.
select e.first_name||' '||last_name Nombre, e.salary, d.name Dpto, vista.total
from employee e, department d, (select department_id, max(salary) total from emp
loyee group by department_id) vista
where e.department_id=d.department_id
and d.department_id=vista.department_id
and e.salary=vista.total
/
--TEMA NRO. 5
--Para los empleados que tengan como jefe a un empleado con cdigo mayor que el su
yo, obtener
--a) los que reciben de salario mas de $1000 y menos de $2000, o
--b) que estn en el departamento 30.
select *
from employee
where employee_id < manager_id
and (department_id=30 or salary between 1000 and 2000)
/
--TEMA NRO. 6
--Hallar el nombre del ltimo empleado por orden alfabtico.
select first_name||' '||last_name
from employee
where substr(first_name,1,1) = (select max(substr(first_name,1,1)) from employee
)
/
--TEMA NRO. 7
--Considerando empleados con salario menor de $5000, hallar la media de los sala
rios de los departamentos cuyo salario mnimo
--supera a $900. Mostrar tambin el cdigo y el nombre de los departamentos.
select e.department_id, d.name, avg(e.salary), min(e.salary)
from employee e, department d
where e.salary < 5000
and e.department_id=d.department_id
group by e.department_id, d.name
having min(salary) > 900
/
--TEMA NRO. 8
--Qu empleados trabajan en ciudades de ms de cinco letras? Ordenar el resultado inv
ersamente por ciudades y ascendentemente por --los nombres de los empleados.
select employee_id, first_name, last_name, l.regional_group
from employee e, department d, location l
where length(l.regional_group)>5
and e.department_id=d.department_id
and d.location_id=l.location_id
order by 4 desc, 2
/
--TEMA NRO. 9
--Indicar para cada empleado el porcentaje que supone su comisin sobre su salario
, ordenando el resultado por el nombre del mismo.
select employee_id,
first_name,
last_name,
nvl(commission,0),
salary,
nvl(round(((commission/salary)*100),2),0)||' % ' Porcentaje
from employee
order by 6 desc
/
--TEMA NRO. 10
--Hallar los datos de los empleados que, o bien su apellido empieza por A y su s
alario es superior a $1000, o bien reciben comisin y --trabajan en el departament
o 30.
select *
from employee
where (last_name like 'A%' and salary>1000)
or (department_id=30 and (commission is not null and commission != 0 )
)
/
--TEMA NRO. 11
--Suponiendo que el ao prximo la subida del sueldo de cada empleado ser del 6%, y e
l siguiente del 7%, halla los nombres y el --salario actual, del ao prximo y del s
iguiente, de cada empleado. Indique dems con un "SI" o un "NO",si el empleado tie
ne comision.