Databases

T01-007-01 Funciones aritméticas

Enunciado

A menudo, trabajar con valores NULL es incómodo. La función NVL(expresión1, expresión2) nos permite asignar un valor distinto a los atributos de un registro cuyo valor sea NULL.

Ejemplo:

La siguinete consulta muestra a los subordinados del empleado 149 junto con el departamento en el que están asignados. Si alguno de esos empleados no tiene un departamento asignado (es NULL) debe aparecer asignado al departamento 260 (Recruiting)

SELECT FIRST_NAME, LAST_NAME, DEPARTMENT_ID, NVL(DEPARTMENT_ID, 260)
FROM HR.employees
WHERE MANAGER_ID = 149

FIRST_NAME LAST_NAME DEPARTMENT_ID NVL(DEPARTMENT_ID,260)
Ellen Abel 80 80
Alyssa Hutton 80 80
Jonathon Taylor 80 80
Jack Livingston 80 80
Kimberely Grant - 260
Charles Johnson 80 80

Ejercicio:

Muestra el nombre, apellidos, trabajo y el salario mensual al que se le han aplicado las comisiones y se ha redondeado hasta los céntimos. Si alguno de los trabajadores no tuviera comisión asignada, se le pondría un .5 (El único que no tiene asignada es un programador ;-))

Haz que se muestren únicamente aquellos registros cuyo nombre sea 'David'.

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, JOB_ID, ROUND((SALARY / 12) * (1 + NVL(COMMISSION_PCT,.5)), 2) AS "SUELDO + COMISIONES" FROM HR.employees WHERE FIRST_NAME = 'David' ORDER BY "SUELDO + COMISIONES" DESC, LAST_NAME

Prueba


											

Librerías (Onfly databases)