SQL - Trabajar con saldo

 
Vista:

Trabajar con saldo

Publicado por Damian (26 intervenciones) el 16/09/2008 04:32:38
Tengo una tabla donde incerto los movimientos de articulos, o sea va a ir ingresando tanto una compra a un proveedor como cuando se vende articulos.
En esta tabla tengo una columna que se llama Entrada y aca se insertara cuando se compra, otra se llama Salida donde se insertan las ventas, por ultimo una que es saldo y aca tengo mi problema ya que quiero que vaya calculando la entrada y salida de cada articulo en particular seria algo asi.
Entrada Salida Saldo
12 0 12
0 4 8
0 8 0

Esto seria el movimiento de un articulo, por supuesto que tiene mas campos pero donde tengo problemas en el saldo estoy insertando mal.
Como logro que se inserten los datos correctamente,en un solo Insert no puedo, tengo que hacer un Update despues?.........Espero me entiendan y me ayuden. Gracias
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:Trabajar con saldo

Publicado por Damian (26 intervenciones) el 16/09/2008 20:51:19
Ya esta gente ya logre realizarlo,tuve que hacer un insert primero, luego dentro de un for un select con top saldo where....,para luego culminar con un update actualizando el saldo.
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

RE:Trabajar con saldo

Publicado por Isaias (5072 intervenciones) el 17/09/2008 16:31:22
No es una buena metodologia ir CALCULANDO el saldo cada que se haga el insert de un articulo, ya sea de SALIDA o ENTRADA, pero bueno, tendrias, antes de insertar, ir a buscar tu ultimo registro con respecto al articulo para poder hacer los calculos, ahora que si deseas CALCULAR el saldo al momento de generar el SELECT, aqui te dejo la respuesta:

id Entrada Salida Saldo
1 10 0 10
2 0 5 5
3 1 0 6
4 1 1 6

select
a.id,
a.entrada,
a.salida,
(
select sum(b.entrada - b.salida)
from dbo.t1 as b
where b.id <= a.id
) as saldo
from dbo.t1 as a
order by a.id
go
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