Funcion para calcular balance

06/05/2007 - 18:46 por principiante | Informe spam
Tengo una tabla: facturas(numerofactura,codigocliente, valor,fecha)
y otra tabla: pagos(numeropago, numerofactura, valorpagado, fechapago)
Es una relacion de 1 a N. (1 factura puede tener N pagos).

Y necesito hacer una funcion para calcular el balance de un cliente a una
fecha.

Me pueden ayudar con el select para armar la funcion?
Tengo la idea pero no tengo claro como hacer el sum:

select facturas.valor, sum(pagos.valorpagado) as pagado
from facturas
inner join pagos on pagos.numerofactura=facturas.numerofactura and
pagos.fechapago<@fecha
where cliente=@cliente and facturas.fecha<@fecha
group by facturas.valor

Lo que debo devolver es un solo valor ya que el select indicado me lo da
para cada factura.
Nota: debe estar dentro de una funcion.

Gracias

Jose TH

Preguntas similare

Leer las respuestas

#6 principiante
07/05/2007 - 18:13 | Informe spam
Hola Ricardo

"Ricardo Passians" wrote in message
news:%
Prueba esta opción (usando una subconsulta tambien):

select @facturado=sum(PagosAFacturas.valor),
@pagado=sum(PagosAFacturas.pagado) from
(
select facturas.numerofactura, facturas.valor, sum(pagos.valorpagado) as
pagado
from facturas
inner join pagos on pagos.numerofactura=facturas.numerofactura and
pagos.fechapago<@fecha
where cliente=@cliente and facturas.fecha<@fecha
group by facturas.numerofactura, facturas.valor
) PagosAFacturas

El balance lo tienes en @

No la he chequeado pero puedes revisar el plan de ejecución para ver
cual solución puede ser mas eficiente (en comparacion con la de Javier).




Probe las dos y ahora si me funcionan bien pero no se como revisar eso del
plan de ejecucion que dices, si me pudieras dar mas detalles.



Muchas gracias

Jose TH
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida