--1.Hallar los nombres de los departamentos ordenados por su ciudad, pero en orden inverso.
select dname, loc from dept order by loc desc
--2.Obtener el nombre y empleo de los empleados, ordenado por salario.
Select ename, job, sal, From emp Order by sal
--3.Obtn los salarios y las comisiones de los empleados del departamento 30.
Select deptno,ename,sal,comm From emp Where deptno =30
--4.Obtn las distintas comisiones. Select distinct comm From emp
--5.Hallar las distintas comisiones y los nombres de los empleados.
Select distinct comm,ename From emp Where comm. Is not null
--6.Hallar los distintos salarios y empleados.
Selec distinct sal,ename From emp
--7.Obtenga los nuevos salarios que resultaran de sumar a los empleados del departamento 30 una gratificacin de 1000 unidades monetarias . Select deptno,sal,+1000 AS NUEVO SALARIO From emp Where deptno=30
--8.dem pero obteniendo tambin el salario anterior.
Select deptno, sal,sal+1000 AS NUEVO SALARIO From emp Where deptno=30
--9.Hallar los empleados que tienen una comisin superior a la mitad de su salario.
Select ename From emp Where comm >(sal/2)
--10.Hallar los empleados cuya comisin es menor o igual que el 25% del sueldo.
Select ename From emp Where comm <=(sal*0.25) --11.Haga que en cada fila figure 'Nombre: ' y 'Puesto: ' anteponindose a su respectivo valor.
Select Nombre:,ename,puesto,job From emp
--12.Hallar el salario y la comisin de los empleados cuyo nmero de empleado supera a 7500.
Select empno,sal,comm From emp Where empno>7500
--13.Si dividimos los empleados en dos grupos, A y B, empezando los del grupo B en la letra J, obtn los nombres y empleos de los del grupo B, por orden alfabtico.
select ename, job from emp where substring(ename,1,1)>'j' order by ename asc
--14.Obtener el salario, la comisin y el salario total (salario + comisin) de los empleados con comisin, ordenado por nmero de empleado.
select sal, comm, (sal+comm) as 'salario total' from emp where comm is not null order by empno asc
--15.Hallar el nombre de los empleados que, teniendo un salario superior a 1000, tienen como director al empleado de cdigo 7698. select ename, mgr from emp where sal > 1000 and mgr =7698
--16.Halla el conjunto complementario del resultado del ejercicio anterior.
select ename, mgr from emp where sal < 1000 and mgr <>7698
--17.Hallar el porcentaje que supone la comisin sobre el salario total ordenando por nombre.
Select ename,sal+comm as 'salario total', comm,round((100*comm/(sal+comm)),0) as 'porcentaje' from emp where comm is not null order by ename
--18.Hallar los empleados del departamento 10 cuyo nombre no contiene la cadena "LA".
select ename from emp where deptno = 10 and ename not like '%la%
--19.Obtn los empleados que no son supervisados por ningn otro.
Select ename, mgr From emp Where mgr is null
--20.Obtn los nombres de los departamentos que no sean "SALES" ni "RESEARCH",
select dname from dept where not dname='ventas' and not dname ='investigacion' order by loc
--21.Deseamos conocer el nombre y departamento de los administrativos que no trabajan en el departamento 10 y cuyo salario es superior a 800, ordenados por la fecha de incorporacin.
select ename, deptno, sal , hiredate from emp where job='administrativo' anddeptno<>10 and sal > 800 order by hiredate asc
--22.Para los empleados que tienen comisin obtn sus nombres en orden alfabtico y el cociente entre salario y comisin.
Select ename,comm,sal/comm From emp Where comm. Is not null Order by ename
--23.Obtn informacin de los empleados cuyo nombre contiene exactamente cinco caracteres.
Select ename Form emp Where len(ename)=5
--24.dem pero cuyos nombres contengan al menos cinco caracteres. Select ename From emp Where len(ename)>=5
--25.Halla los datos de los empleados para los que, su nombre comienza por A y su salario es mayor que 1000, o, reciben comisin y trabajan en el departamento 30.
select ename, job, mgr, sal, deptno from emp where (ename like '[a]%' and sal>1000)
--26.Halla el nombre y salario total de todos los empleados ordenado por este ltimo y por su propio salario.
select ename, sal+comm as 'salario total' , sal from emp order by sal+comm, sal
--27.Obtn los nombres, salarios y comisiones de los empleados que perciben un salario situado entre la mitad de la comisin y la propia comisin.
Select ename,sal,comm From emp Where sal between comm/2 and comm. Order by comm.
--28.El complementario del anterior.
Select ename,sal,comm From emp Where sal not between comm./2 and comm. Order by comm
--29.Intenta lograr los nombres y empleos de los empleados tales que su empleo acaba en "MAN" y su nombre empieza por A.
select ename, job from emp where ename like '[a]%'and job like '%MAN'
--30.Suponiendo que el ao prximo la subida del total percibido por empleado es del 6% y el siguiente del 7%, hallar los nombres y salarios totales actuales y futuros de todos los empleados, indicando para cada uno si tienen o no comisin.
select ename, comm, sal+comm as 'Salario total',(sal+comm)+(0.06*(sal+comm)) as '6%', (sal+comm)+(0.07*(sal+comm)) as'7%' from emp where comm is not null union select ename, comm,sal, sal+(0.06*sal),sal+(0.07*sal) from emp where comm is null
--31.Halla el nombre y la fecha de ingreso de los empleados que no son vendedores. select ename, hiredate from emp where job <> 'vendedor'
--32.Para los empleados que tienen como director a algn otro con nmero mayor que el suyo, obtener los que reciben de salario ms de 1000 y menos de 2000, o estn en el departamento 30.
Selec ename, mgr,empno,sal,deptno From emp Where mgr>empno and sal between 1000 and 2000
--33.Obtn el salario ms alto de la empresa, el total destinado a comisiones y el nmero de empleados.
select max(sal) as 'Maximo Salario', sum(comm) as 'Total de comisiones',count(empno) as 'Total de Empleados' from emp
--34.Halla los datos de los empleados cuyo salario es mayor que el del empleado de cdigo 7934, ordenando por el propio salario.
Select ename,sal From emp Where sal>(select sal From emp Where empno=7934)
--35.Obtn informacin en la que se reflejen los nombres, empleos y salarios tanto de los que superan el salario de Allen como del propio Allen.
Select ename,job,sal From emp Where sal >(select sal From emp Where ename='allen')
--36.Halla el nombre del ltimo empleado por orden alfabtico.
Select ename From emp Where ename>=all(select ename From emp)
--37.Halla el salario ms alto, el ms bajo y la diferencia entre ellos.
Select max(sal)as 'salario maximo', min(sal)as 'salario minimo',(mas(sal)-min(sal))as 'diferencia' From emp
--38.Quines reciben el salario ms alto y ms bajo, y a cunto ascienden?
select ename, sal from emp where sal >= all(select sal from emp) union select ename, sal from emp where sal <= all(select sal from emp)
--39.Halla la media de los salarios de los departamentos cuyo salario mnimo supera a 900, considerando los salarios inferiores a 5000. Adems se necesita el cdigo y el nombre de los departamentos.
Select e.deptno,d.dname,avg(sal) as 'salario promedio' From emp e,dept d Where e.deptno=d.deptno and e.deptno not in(select deptno from emp where sal <=900) group by d.name, e.deptno
--40.Qu empleados trabajan en ciudades que tienen ms de cinco letras? Ordena el resultado inversamente por ciudades y normalmente por nombres de empleados.
Select e.ename, de.loc From emp e, dept d Where e.deptno=d.deptno and len(d.loc)>5 Order by d.loc desc , e.ename
--41.Halla los empleados cuyo salario supera o coincide con la media del salario de la empresa.
Select ename, sal From emp Where sal >=all(select avg(sal) From emp)
--42.Obtn los empleados cuyo salario supera al de sus compaeros de departamento.
Select e.ename, e.sal, e.deptno From emp e Where e.sal >=all(select sal From emp Where deptno=e.deptno)
--43.Cuntos empleos diferentes, empleados y diferentes salarios encontramos en el departamento 30, y a qu cantidad asciende la suma de los salarios de dicho departamento?
Select count(distinct job) as 'Empleos', count(ename) as 'Empleados', Count(distinct sal) as 'salarios',sum(sal) as 'Total de salarios' From emp Where deptno=30
--44.Cuntos empleados tienen comisin?
Select count(comm) as 'Cantidad de empleados con comision' From emp
--45.Cuntos empleados tiene el departamento 20?
Select count(e.empno) as 'Cantidad de Emp del Dept 10' From emp e,dept d Where e.deptno=d.deptno and d.deptno= 10
--46.Halla los departamentos que tienen ms de tres empleados y el nmero de empleados de los mismos.
select e.deptno, d.dname, count(e.ename)as 'Cant de Empleados' from emp e, dept d where d.deptno=e.deptno and3<(select count(ename) from emp where deptno=d.deptno) group by dname, e.deptno
--47.Obtn los empleados del departamento 10 que tienen el mismo empleo que alguien del departamento de "SALES" (o sea, desconocemos el cdigo del departamento "SALES").
--48.Halla los empleados que tienen por lo menos un empleado a su mando, ordenados inversamente por nombre.
Select ename From emp Where empno in(select mgr From emp) Orde by ename desc
--49.Qu empleos distintos encontramos en la empresa y cuntos empleados desempean cada uno?
--50.Halla la suma de los salarios de cada departamento.
select d.dname, sum(e.sal) as 'suma de salarios' from emp e, dept d where e.deptno=d.deptno group by d.dname
--51.Halla los empleados que no tienen a otro empleado a sus rdenes.
--52.Cuntos empleos hay en cada departamento y cul es la media anual del salario de cada uno? Indique el nombre del departamento para clarificar el resultado.
select count(e.ename), avg(e.sal) from emp e, dept d where e.deptno=d.deptno group by d.deptno
--53.Halla los empleados del departamento 30 por orden descendente de comisin.
Select ename,deptno, comm From emp Where deptno=30 Order by comm Desc
--54.Obtn los empleados que trabajan en Dallas o en New York.
select ename from emp where deptno in(select deptnofrom deptwhere loc='dallas' or loc='new york')
--55.Obtn un listado en el que se reflejen el cdigo y el nombre de cada supervisor, junto al nmero de empleados que supervisa directamente. Fjese en que puede haber empleados que no tengan supervisores, as que para estos se indicar solamente el nmero de ellos dejando los restantes valores a NULL.
--56.Hllense los empleados con salario mayor de cada departamento. Se debe incluir el salario y el nombre del departamento.
select e.ename, e.sal, d.dname from emp e, dept d where d.deptno=e.deptno and e.sal>= all(select sal from emp where deptno=e.deptno)
--57.Hallar el departamento cuya suma de salarios sea la ms alta. Halla tambin la mencionada suma.
--58.Cules son los dos empleados con los mayores salarios?
--59.Determinar las localidades que no son sede de departamentos que no tienen empleados, y en las que trabajan al menos cuatro empleados, indicando el nmero de empleados que trabaja en cada una.