Solución Boletín 3 - Informática

Anuncio
BOLETÍN DE FUNCIONES SQL
IES Gonzalo Nazareno 2ºASI SGBD
1. Muestra el número de empleados que ganan más de 1400.
select count(*)
from emp
where sal+nvl(comm,0)>1400;
2. Muestra el salario medio de los conserjes (job='CLERK').
Select avg(sal)
from emp
where job='CLERK';
3. Muestra el empleado que gana más junto con su salario dando el formato siguiente:
'El nombre del empleado que más gana es xxxx, y gana nnnnn'
select 'El nombre del empleado que más gana es '||ename|| ', y gana '||sal as mensaje
from emp
where sal= (select max(sal)
from emp);
4. Muestra los nombres de los conserjes ordenados por salario.
select ename
from emp
where job='CLERK'
order by sal;
5. Muestra el gasto de personal total de la empresa, sumando salarios y comisiones.
select sum(sal+nvl(comm,0))
from emp;
6. Muestra un informe con los nombres de los empleados y su salario con el siguiente formato:
nombre1........ salario1
nombren.........salarion
select rpad(ename,12,'.'), sal
from emp
order by sal;
7. Muestra el número de trienios completos de cada empleado.
Select ename, trunc(months_between(sysdate, hiredate)/36) as trienios
from emp;
8. Muestra el total de dinero ganado por el empleado desde que se incorporó a la empresa
suponiendo que el salario no ha cambiado en todo ese tiempo.
Select ename, sal*(trunc(months_between(sysdate, hiredate)))
from emp;
9. Muestra con dos decimales el salario diario de cada trabajador suponiendo que los meses
tienen 30 días.
select ename, round(sal/30,2)
from emp;
10. Muestra los empleados que tengan en su nombre al menos dos As.
Select ename
from emp
where instr(ename,'A',1,2)<>0;
11. Muestra los empleados cuyo nombre empieza por una vocal.
select ename
from emp
where substr(ename, 1,1) in ('A','E','I','O','U') ;
12. Muestra los departamentos que tienen algún empleado cuyo nombre tiene más de cinco
letras.
Select dname
from dept
where deptno in (select deptno
from emp
where length(ename)>5);
13. Muestra en minúsculas los nombres de los departamentos que tienen algún empleado.
Select lower(dname)
from dept
where deptno in (select deptno
from emp);
14. Muestra un mensaje de saludo a cada empleado con el formato 'Hola nombreempleado'.
Select concat('Hola ',ename)
from emp;
15. Muestra el nombre de cada empleado junto con el nombre del mes en el que entró en la
empresa.
Select ename, to_char(hiredate,'month')
from emp;
16. Muestra la hora del sistema con el formato siguiente: 'Hoy es nn del mes de nombremes del
año n.nnn y son las hh y nn minutos.'
select 'Hoy es '||to_char(sysdate,'dd')||' del mes de '||to_char(sysdate,'month')||' del año '||
to_char(sysdate,'yyyy')||' y son las '||to_char(sysdate,'hh')||' y '||
to_char(sysdate,'mi')|| ' minutos'
from dual;
17. Muestra el nombre del primer empleado por orden alfabético.
select min(ename)
from emp;
18. Muestra el número de jefes que hay en la empresa.
Select count(distinct(mgr))
from emp;
19. Muestra los empleados que fueron dados de alta entre el 01/03/1988 y el 30/06/1989.
select ename
from emp
where hiredate>to_date('01/03/1988','dd/mm/yyyy') and
hiredate<to_date('30/06/1989','dd/mm/yyyy');
20. Muestra los empleados que llevan más de 6 años en la empresa.
Select ename
from emp
where months_between(sysdate,hiredate)>72;
Descargar