viernes, 30 de diciembre de 2011

EJERCICIOS DE REFUERZO TEMA 4: Funciones.

1.        Obtener el empleado del departamento 10 que mas gana.
SELECT* FROM EMPLE WHERE SALARIO=(SELECT MAX(SALARIO)FROM EMPLE WHERE DEPT_NO=10)
/
2.        Obtener los empleados del departamento 20 que ganan menos de la media de ese departamento.
SELECT * FROM EMPLE WHERE DEPT_NO=20 AND SALARIO<(SELECT AVG(SALARIO) FROM EMPLE)
/
3.        Obtener los empleados de oficio VENDEDOR que ganan mas de la media de ese oficio.
SELECT * FROM EMPLE WHERE SALARIO>(SELECT AVG(SALARIO) FROM EMPLE WHERE OFICIO='VENDEDOR')
/
4.        Obtener los empleados que ganan mas de la media de la media de salarios del departamento 20.
SELECT * FROM EMPLE WHERE SALARIO>(SELECT AVG(SALARIO)FROM EMPLE)
/
5.        Obtener los empleados que ganan mas de la media.
SELECT * FROM EMPLE  WHERE SALARIO>(SELECT AVG(SALARIO) FROM EMPLE)
/
6.        Con la tabla Notas_Alumnos obtener la mayor nota de la tabla.
SELECT MAX (GREATEST(NOTA1,NOTA2,NOTA3))FROM NOTAS_ALUMNOS
7.        Ahora obtener quien es el alumno con esa nota máxima.
SELECT NOMBRE_ALUMNO FROM NOTAS_ALUMNOS WHERE GREATEST(NOTA1,NOTA2,NOTA3)=(9)
/
8.        Determina cuales son los títulos de la tabla mistextos que tienen 3 palabras o mas.
SELECT TITULO FROM MISTEXTOS WHERE TITULO LIKE '%%%'
/
9.        Crea una expresión con la tabla mistextos en la que visualizas el autor y el titulo (limpio de todo) con el siguiente formato:
a.    <autor> escribió <libro>.
SELECT AUTOR||'HA ESCRITO'||TITULO FROM MISTEXTOS
/

10.     Obtener los empleados que llevan mas de 25 años trabajando en la empresa.
SELECT APELLIDO FROM EMPLE WHERE  MONTHS_BETWEEN(FECHA_ALT,SYSDATE)>(25*12)
/
11.     Obtener el empleado con mas antigüedad de cada departamento.
SELECT * FROM EMPLE E WHERE (MONTHS_BETWEEN(SYSDATE,FECHA_ALT)(SELECT MAX(MONTHS_BETWEEN(SYSDATE,FECHA_ALT)FROM EMPLE WHERE DEPT_NO=E.DEPT_NO)
/
12.     Obtener el empleado con menos antigüedad de cada oficio.
SELECT APELLIDO FROM EMPLE E WHERE FECHA_ALT=(SELECT MAX(FECHA_ALT)FROM EMPLE WHERE DEPT_NO=E.DEPT_NO)
/
13.     Muestra la fecha actual con el formato: ‘Hoy es 15 de abril de 2009’ (ej.)
SELECT TO_CHAR(SYSDATE,'"HOY ES "dd" DE "month" DE "yyyy"')FROM DUAL /


14.     Muestra la fecha actual con sólo 2 dígitos para el año y con el carácter guión ( - ) como separador entre días, meses y años.
ALTER SESSION SET NLS_DATE_FORMAT='dd-mm-yy'
/
15.     Obtener la fecha juliana actual.
SELECT TO_CHAR(SYSDATE,'J')FROM DUAL
/
16.     Obtener los días que quedan hasta el 1 de enero de 2012
SELECT TRUNC(MONTHS_BETWEEN('01/01/2012',SYSDATE)*30) FROM DUAL
/
17.     Obtener el número de días que llevamos este siglo
SELECT TRUNC(MONTHS_BETWEEN(SYSDATE,'01/01/2000')*30) FROM DUAL
/

No hay comentarios:

Publicar un comentario