Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/12/2007, 08:04
yermatron
 
Fecha de Ingreso: diciembre-2007
Ubicación: Coronel
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Ayuda con una función

Hola gracias por interesarse en ayudar.

Cita:
Iniciado por seyko Ver Mensaje
Buenas,
una pregunta es una tarea de clases?

Si, es parte de uno de los cuantos ejercicios que me dieron hace 2 meses y este es el unico que no he sabido como hacerlo. Ahora esto no tengo que presentarlo solo lo trato de hacer para estudiar para mí examen.


Primero, por que no utilizas un boolean?????
algun not null también seria correcto!

La estructura de la base de datos tengo que respetarla, debo ajustarme a esta. Yo igual ocuparia un boolean :)..


Define bien que quieres sacar, la fecha de la ultima multa pagada y lo que lleva acumulado, hasta esa fecha o en total? (cuentan todas las multas o solo las pagadas), en fin, antes de ponerse a escribir codigo hay que pensar que quieres que haga.

Las fechas en que se pagaron, por eso en donde trate de hacer algo en la función que ves puse un SELECT fecha_pago, n_socio, precio FROM multas WHERE pagado = 'Si',...... lo que se va acumulando es la cantidad de dinero en multas que a pagado hasta ese entonces..

Mira esto.. aquí esta un poco más claro.

fecha, num_socio, multa, monto_acum, cant_acum
01-11-07, 125, 1200, 1200, 1
02-11-07, 128, 1250, 1250, 1
02-11-07, 125, 900, 2100, 2
05-11-07, 300, 1500, 1500, 1
08-11-07, 125, 500, 2600, 3
12-11-07, 128, 1000, 2250, 2

MIra él num_socio (125 )en la primera fila tiene una multa de 1200 y su monto_acum es de 1200 por que a esa fecha solo a pagado eso y su cantidad acumulada es 1 pues solo a pagado una vez, luego en la tercera fila vuelve a aparecer el num_socio(125) y ahora paga una multa de 900 por lo tanto su monto_acum es de 2100 y esto es por que en la primera fila su monto_acum era de 1200 luego en la tercera fila la multa fue de 900 y en esta misma tercera fila su monto_acum es de 1200+900= 2100 y la cant_acum es de 2 en la tercera fila ya que a pagado 2 veces hasta hay. Bueno si vez en la quinta fila vuelve a ocurrir lo mismo.

No obstante, todo esto se puede hacer con una consulta no es necesario utilizar un PL.

Bueno tengo que hacerlo en Plpgsql porque el ramo es de eso, ademas me tengo que ajustar a sacarlo con un bucle FOR..

Un saludo
Bueno muchas por el interes en ayudar
.. saludos