SQL Server - principante

   
Vista:

principante

Publicado por morales ramon (2 intervenciones) el 07/11/2008 04:45:42
tengo una tabla facturas con los siguientes campos
factura char(20)
fecha datetime
importe money

como hago un select que me devuelva todas las facturas mas viejas que sumadas por importe no sobrepasen una cantidad especificada?

ejemplo
factura- fecha- importe
1-2008/10/01-100
2-2008/10/02-120
3-2008/10/02-100
4-2008/10/02-120

si pidiera las facturas mas viejas que sumadas no sobrepasen en 250
tendria que devolver las facturas 1,2

gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:principante

Publicado por Juan Esteban (3 intervenciones) el 12/11/2008 17:16:02
Te lo escribo en pseudolenguaje, tu lo transformas en SQL

declarar tabla tabla_final (
factura,
fecha,
importe)

declara variable importe_factura como numero
declara variable fecha_factura como fecha
declara variable numero_factura como numero
declara total_facturas como numero

declara cursor
select factura, fecha, importe
from facturas
order by fecha desc

mientras cursor no llegue al final (fetch en importe_factura, numero_factura, fecha_factura)
select total_facturas = sum(importe) from tabla final

si total_facturas + importe_factura >= 250
entonces salir de "mientras"
si no
insertar en tabla_final valores (importe_factura, numero_factura, fecha_factura)
fin mientras

select * from tabla_final
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar