Como crear una función (stored function) en MySql

By | 2010/02/21

Estoy elaborando un programa para corredores de seguros en el cual necesitaba crear un reporte de morisidad de pagos por lo que necesitaba extraer de la base de datos los montos atrasados para 30 días, 60 días y más de 90 días.

Una de las forma de hacerlo es identificar cada póliza atrasada y llamar una función (stored function) que me devuelva el monto para cada periodo de días.

Este es el código para crear un función:

CREATE FUNCTION `saldo_30_dias`(par_poli_id INTEGER(11))
RETURNS decimal(10,2)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ”
Begin
Declare saldo decimal(10,2);
select sum(pole_monto-pole_abono) into saldo
from polizas_letras a
where a.poli_id=par_poli_id
and pole_fecha_letra>=adddate(now(), interval -30 DAY)
and pole_fecha_letra<now()
and pole_estatus=0;
return saldo;
end;

Como pueden ver la función recibe un parámetro (par_poli_id) que es el código de la póliza.

Returna un valor decimal(10,2) que utilizó en el select

Ejecuto el select y el valor obtenido es insertado en saldo, utilizando la sentencia “into” que es la única diferencia de un select regular.

2 thoughts on “Como crear una función (stored function) en MySql

  1. mervy

    como combino esa funcion con php para q me retorne el resultado al cliente final A? help

  2. Dunderio

    Seria algo como:
    $qsql =”select nombre_funcion(variable) valor”;
    $rs_proy = mysql_query($qsql);
    $i=0;
    echo mysql_result($rs_proy,$i, ‘valor’);

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.