Databases

T01-007-01 Funciones aritméticas

Enunciado

Las funciones ROUND y TRUNC son parecidas a las FLOOR y CEIL , que hemos utilizado en el ejercicio anterior, pero trabajan con la posibilidad de indicar el número de decimales que queremos que tenga el resultado:

  • ROUND(número [,m]): Devuelve el número redondeado a ‘m’ decimales.
  • TRUNC(número, [m]): Trunca número para que tenga un cierto número de dígitos (con m decimales).

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, hasta los céntimos, de los empleados cuyo trabajo comienza por AD:

SELECT FIRST_NAME, LAST_NAME,
    JOB_ID, SALARY / 12 AS "SALARIO MENSUAL",
    ROUND(SALARY / 12, 2) AS "SALARIO MENSUAL, CON CENTIMOS, REDONDEADO",
    TRUNC(SALARY / 12, 2) AS "SALARIO MENSUAL, CON CENTIMOS, TRUNCADO"
FROM HR.employees
WHERE JOB_ID LIKE 'AD%'

FIRST_NAME LAST_NAME JOB_ID SALARIO MENSUAL SALARIO MENSUAL, CON CENTIMOS, REDONDEADO SALARIO MENSUAL, CON CENTIMOS, TRUNCADO
Jennifer Whalen AD_ASST 366.666666666666666666666666666666666667 366.67 366.66
Steven King AD_PRES 2000 2000 2000
Neena Kochhar AD_VP 1416.666666666666666666666666666666666667 1416.67 1416.66
Lex De Haan AD_VP 1416.666666666666666666666666666666666667 1416.67 1416.66

Ejercicio:

Muestra el nombre, apellidos y el salario mensual al que se le han aplicado las comisiones y se ha redondeado hasta los céntimos.

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, ROUND((SALARY / 12) * (1 + COMMISSION_PCT), 2) AS "SUELDO + COMISIONES" FROM HR.employees WHERE COMMISSION_PCT IS NOT NULL ORDER BY "SUELDO + COMISIONES" DESC, LAST_NAME

Prueba


											

Librerías (Onfly databases)