Está en la página 1de 11

1. Hallar cuantos departamentos hay y el presupuesto anual y medio de ellos.

select presu,sum(numde) as departamentos from depto group by presu

2. Hallar la diferencia entre el salario ms alto y el ms bajo.

select max(salar)-min(salar) from empleado


3. Hallar el nmero medio de hijos por empleado para todos los empleados que no tienen
ms de 2 hijos.

select nomem,avg(numhi) as media_hijos from empleado where numhi<=2 and numhi>0


group by nomem

4. Para los departamentos en los que hay algn empleado cuyo salario sea mayor que $400
al mes, encontrar el nmero de empleados y la suma de sus salarios, comisiones y
nmero de hijos.

select numem,sum(salar) as salario,sum(comis) as comisiones,sum(numhi) as hijos from


empleado where salar>400 group by numem
5. Para los departamentos en los que algn empleado tiene comisin, encuentre cuantos
empleados hay en promedio por cada extensin telefnica.

select extel,count(nomem) from empleado join


(select numde,avg(numem) as promedio_empleados from empleado where comis>0 group
by numde) as promedios
on empleado.numde= promedios.numde
group by extel

6. Para cada departamento, hallar la media de la comisin con respecto a los empleados
que la reciben y con respecto al total de empleados.

select nomem as nombre,count(numem) nmero,sum(numem) as empleado from empleado


join (select numde,avg(comis) as media_comisiones from empleado group by numde) as
comisiones
on empleado.numde= comisiones.numde
group by nomem

7. Para los departamentos cuyo director lo sea en funciones, encontrar el nmero de


empleados y la suma de sus salarios, comisiones y nmero de hijos.

select numem,sum(salar) as salario,sum(comis) as comisiones,sum(numhi) as hijos


from depto as D, empleado as E
where D.numde=E.numem and tidir='F'
group by numem
8. Para los departamentos cuyo presupuesto anual supera los $6,000 (presu=6), hallar
cuantos empleados hay en promedio por cada extensin telefnica.

9. A los empleados que son directores en funciones se les asignara una gratificacin de 5%
de salario. Encontrar por orden alfabtico el nombre de estos empleados y la
gratificacin correspondiente a cada uno.

select distinct (d.depde),e.nomem,e.salar*0.05 as gratificacion from depto as d, empleado


as e
where e.numem=d.depde
order by e.nomem
10. Encontrar por orden alfabtico, los nombres de los empleados que son directores de
primer nivel, es decir, que dirigen departamentos de los que no dependen otros
departamentos.

select D.depde,E.nomem from depto as D,empleado as E where depde is null order by


nomem
11. Encontrar, por orden alfabtico los nombres de los empleados de los departamentos
cuyo director en propiedad lo sea tambin en funciones de algn otro, excluyendo del
resultado a los directores.

select D.depde,E.nomem from depto as D,empleado as E


where D.numde=E.numde and D.depde is not null order by E.nomem

12. Comprobar que ningn director en propiedad es director inmediato en funciones de su


director inmediato.

13. Hallar, por orden alfabtico, los nombres de los empleados cuyo salario supera al
salario medio de los departamentos en los que la masa salarial (suma de salarios de sus
empleados) supera a la de su propio departamento.

select E.salar as Salarios,E.nomem as Empleados from depto as D,empleado as E


where D.numde=E.numde and E.salar>(select avg(E.salar) from empleado as E) order by
E.nomem
14. Hallar por orden alfabtico, los nombres de los departamentos cuyo presupuesto medio
por empleado supera a la media de sus salarios.

select nomde as Departamento from depto as d


join(select numde,count(nomem)as cuenta,avg(salar) as promedio from empleado group by
numde) as e
on e.numde=d.numde
where ((d.presu*1000)/e.cuenta)>e.promedio
order by nomde
15. Encontrar cuantos empleados hay que compartan su extensin telefnica con otro de
otro departamento.

select E.nomem,E.extel,D.numde from empleado as E,depto as D


where E.numde=D.numde
order by E.extel

16. Hallar por departamento la masa salarial total (suma de todos los salarios y comisiones
del departamento) y el nombre, por orden alfabtico.

select sum(E.salar) as Salario,sum(E.comis) as Comision,D.nomde


from empleado as E,depto as D
group by D.nomde
17. Efectuar una explosin de organizacin de departamentos. Es decir, para cada
departamento obtener su nombre, el de los que dependen de l y el nivel al que
dependen. Si un departamento depende directamente de otro, este nivel ser 1, si
depende de uno que depende directamente de este ser nivel 2, y as sucesivamente. Se
considerara que un departamento depende de si mismo a nivel 0. La primera columna
del resultado ser el nombre de un departamento, la segunda el de un departamento que
depende de l, y la tercera el nivel que depende (0,1,2,3,4). Considera un mximo de 4
niveles de dependencia. Presentar el resultado por orden alfabtico. Si de un
departamento no depende otro, aparecer al menos dependiendo de si mismo a nivel 0.

select d0.nomde as [Nivel 0],d1.nomde as [<-Nivel 1], d2.nomde as [<-Nivel 2]


from (select numde,nomde,depde from depto
where depde is null) as d0 left join depto as d1
on d0.numde=d1.depde left join depto as d2 on d1.numde=d2.depde
18. Se desea analizar un plan de jubilacin anticipada para los empleados con 60 aos
cumplidos en el que se ofrece una paga adicional extra de jubilacin equivalente al salario
actual de un mes por cada ao de servicio cumplido. Hallar una lista, por orden alfabtico
de los empleados que este ao cumplen 60 o mas aos indicando para cada uno la cuanta
de esta paga extra.

También podría gustarte