Page 1 of 1

OT Función en MySql

PostPosted: Fri Jul 15, 2016 7:19 pm
by horacio
Colegas, necesito hacer una función que me devuelva el mayor valor de un conjunto de valores. He codificado algo como esto pero no me devuelve nada

Code: Select all  Expand view

function MayorSueldo( nro_legajo int ) returns decimal( 12, 2 )
Begin
   Declare nSueldos Decimal( 12, 2 ); //esto no debe estar bien
   select teorico from nSueldos from sac001 where id_legajo = nro_legajo;
   return nSueldos
End
 

La consulta me debería devolver como máximo seis valores, sin embargo, a pesar que el motor no se queja no devuelve nada. La variable nSueldos no es un decimal sino un ¿ array ?. Tampoco tengo idea de como declararlo. Cualquier ayuda se agradecerá

Saludos

Re: OT Función en MySql

PostPosted: Fri Jul 15, 2016 9:32 pm
by carlos vargas
creo que para algo simple esto retornaria un cursor con un solo valor, asi que la var nSaldo esta de mas.
esto tomando en cuenta que el select retornr una sola fila.

function MayorSueldo( nro_legajo int ) returns decimal( 12, 2 )
Begin
select teorico from sac001 where id_legajo = nro_legajo limit 1;
End

Re: OT Función en MySql

PostPosted: Mon Jul 18, 2016 11:47 am
by Hector Pedro Lerda
Horacio buen dia

Para retornar el mayor numero de un conjunto hazlo asi

select max(teorico) from nSueldos where id_legajo = nro_legajo
group by id_legajo

esto te traera el mayor sueldo yo te aconsejo que ademas le agregues entre que fechas si quieres traer el sac

and fecha between 'xxxx-xx-xx' and 'xxxx-xx-xx


Saludos Pedro Lerda'

Re: OT Función en MySql

PostPosted: Tue Jul 19, 2016 1:15 pm
by horacio
Gracias Hector, realmente era muy fácil. Nuevamente gracias.

Saludos