Databases

T01-007-01 Funciones aritméticas

Enunciado

Las funciones FLOOR y CEIL son muy parecidos:

  • FLOOR(número): Devuelve el valor entero inmediatamente inferior o igual a n.
  • CEIL(número): Devuelve el valor entero inmediatamente superior o igual a n.

Ejemplo:

Imaginemos que el sueldo que aparece en el atributo SALARY de la tabla employees corresponde al salario anual de 12 pagas. Vamos a mostrar el salario mensual de los empleados cuyo trabajo comienza por AD, de manera que eliminemos los decimales y con truncamientos, tanto al alza como a la baja:

SELECT FIRST_NAME, LAST_NAME,
    JOB_ID, SALARY / 12 AS "SALARIO MENSUAL",
    FLOOR(SALARY / 12) AS "SALARIO MENSUAL SIN DECIMALES REDONDEADO A LA BAJA",
    CEIL(SALARY / 12) AS "SALARIO MENSUAL SIN DECIMALES REDONDEADO AL ALZA"
FROM HR.employees
WHERE JOB_ID LIKE 'AD%'

FIRST_NAME LAST_NAME JOB_ID SALARIO MENSUAL SALARIO MENSUAL SIN DECIMALES REDONDEADO A LA BAJA SALARIO MENSUAL SIN DECIMALES REDONDEADO AL ALZA
Jennifer Whalen AD_ASST 366.666666666666666666666666666666666667 366 367
Steven King AD_PRES 2000 2000 2000
Neena Kochhar AD_VP 1416.666666666666666666666666666666666667 1416 1417
Lex De Haan AD_VP 1416.666666666666666666666666666666666667 1416 1417

Nos debemos fijar en que ni FLOOR ni CEIL afectan a los valores que no tienen decimales.

Ejercicio:

Muestra el nombre, apellidos, salario mensual y ese salario mensual al que se le han aplicado las comisiones y se le han eliminado los decimales a la baja.

Haz que se muestren únicamente aquellos registros en los que la comisión (COMMISSION_PCT) no es nula.

Finalmente, ordena el resultado, en primer lugar, descendentemente por el sueldo más las comisiones y, en caso de que ese resultado sea el mismo, alfabéticamente por el apellido

Tipo

SELECT

Solución


												
SELECT FIRST_NAME, LAST_NAME, SALARY / 12 AS "SALARIO MENSUAL", FLOOR((SALARY / 12) * (1 + COMMISSION_PCT)) AS "SUELDO + COMISIONES" FROM HR.employees WHERE COMMISSION_PCT IS NOT NULL ORDER BY "SUELDO + COMISIONES" DESC, LAST_NAME

Prueba


											

Librerías (Onfly databases)