Databases
T01-007-01 Funciones aritméticas
Enunciado
Las funciones
ROUNDyTRUNCson parecidas a lasFLOORyCEIL, 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
SALARYde 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 porAD:
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
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)

