Aprende a Utilizar la PL-SQL Function SUM en tus PL-SQL Packages en Oracle

Si aprendes a utilizar correctamente la PL-SQL Function SUM podrás sumar todos los valores que desees sin que se quede ninguno afuera en tus PL/SQL Packages en Oracle.

La PL-SQL Function SUM te permite sumar todos los valores que devuelva una consulta SELECT o solo los que sean distintos. Revisemos como es la sintaxis de la PL-SQL Function SUM:

/* PL-SQL Function en Oracle */

SUM( [DISTINCT | ALL] n)

El propósito de la PL-SQL Function SUM es retornar la suma de los valores de n, por defecto se asume la cláusula ALL (sumar todo), de lo contrario si se coloca la cláusula DISTINCT (distinto) solo se suman los valores que sean distintos.

La PL-SQL Function SUM también se puede usar en conjunto con otras funciones que te permiten eliminar errores en los cálculos. Revisemos algunos ejemplos prácticos que te permitan entender mas claramente como se debe utilizar la PL-SQL Function SUM en tus PL-SQL Packages en Oracle.

Usaremos la siguiente tabla de datos:

Id_empleado        sueldo       id_departamento

101                                   1690000               20

102                                   990000                 21

103                                   Null                      21

104                                   2250000               21

105                                   5460000               20

106                                   990000                 21

Ejemplo #1: Supone que debes sumar los sueldos que se deben pagar a los empleados de un departamento en particular, veamos como se hace:

/* PL-SQL Function en Oracle */

Select sum(emp.sueldo) total_sueldos

From t_empleado emp

Where emp.id_departamento = 21;

En este ejemplo el resultado de la suma no será correcto, ya que existe un empleado que no tiene registrado el sueldo (id 103), es decir, el sueldo tiene un valor null (nulo), en este caso la PL-SQL Function SUM retornará un valor nulo (NULL). Existen varias formas de solucionar este problema, una de ellas es utilizar la función NVL, veamos como se hace:

/* PL-SQL Function en Oracle */

Select sum(nvl(emp.sueldo,0)) total_sueldos

From t_empleado emp

Where emp.id_departamento = 21;

Este ejemplo retornará correctamente la suma de los sueldos, ya que si se encuentra un valor nulo la PL-SQL Function NVL retornará un cero, lo que permite sumar todos los sueldos, devolviendo como resultado:

/* PL-SQL Function en Oracle */

Total_sueldos

4230000.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”  ¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Ejemplo #2: Supone ahora que deseas obtener la suma de los sueldos de cada departamento, pero que sean distintos, vemos como se hace:

/* PL-SQL Function en Oracle */

Select emp.id_departamento, sum(distinct nvl(emp.sueldo,0)) total_sueldos

From t_empleado emp

Group By emp.id_departamento;

En este ejemplo se agrupan los datos por departamento usando la cláusula GROUP BY, además en la PL-SQL Function SUM se agregó la cláusula DISTINCT para sumar solo los valores que sean distintos. El resultado de esta consulta es el siguiente:

/* PL-SQL Function en Oracle */

Id_departamento        total_sueldos

20                                                               7150000

21                                                               3240000

Te propongo que pruebes de inmediato estos ejemplos en tu Base de Datos con tus propias tablas,  PL/SQL Procedure y PL/SQL Function, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL/SQL Packages en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL/SQL Function en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL/SQL Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en 7 Pasos

Esta entrada fue publicada en Function en Oracle, Packages en Oracle, Procedures en Oracle y etiquetada , , , , , , , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s