SQL Server - Sumar valores vista SQL

   
Vista:

Sumar valores vista SQL

Publicado por Rokefeler (22 intervenciones) el 08/04/2011 20:13:57
Hola,

Tengo problemas a la hora de crear una vista y me gustaría saber si la comunidad me puede ayudar... Tengo una tabla de movimientos contables con fecha de asiento, cuenta contable e importe. Lo que quiero es sacar otra columna con el acumulado de los importes. Por ejemplo:

Fecha asiento Cuenta Importe Acumulado (columna que quiero calcular)
========== ====== ====== =============================
01/01/2010 430 100 100
01/02/2010 430 300 400
01/03/2010 430 -50 350

Una vez hecho esto, necesitaría realizar otra consulta para dado una fecha y una cuenta contable, me devuelva el acumulado. Es decir, en el caso anterior si la fecha seleccionado es 01/02/2010 debe devolver 400, si es 01/01/2010 100 y si es 01/03/2010 350.

Gracias por la ayuda!!!!
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
Imágen de perfil de Isaias

Sumar valores vista SQL

Publicado por Isaias (3180 intervenciones) el 11/04/2011 19:08:02
Veamos si este ejemplo de CALCULO DE SALDO, te puede ayudar

Create Table Tmp(
Fecha_Hora smalldatetime,
No_Comprobante int,
No_Linea smallint,
Lote int,
Pcb smallint,
Pedido smallint,
Ingreso smallint,
Egreso smallint,
Saldo smallint
)
go

Insert into Tmp values('2005-05-02 01:15:00',4,1,21,6,334,167,0,0)
Insert into Tmp values('2005-05-03 15:07:10',5,1,29,6,167,167,0,0)
Insert into Tmp values('2005-07-01 12:25:15',6,1,12,6,200,50,0,0)
Insert into Tmp values('2005-07-01 21:05:52',25,1,1,6,200,0,140,0)
go

select
a.fecha_hora,
a.ingreso,
a.egreso,
sum(b.ingreso - b.egreso) as saldo
from
tmp as a
inner join
tmp as b
on b.Fecha_Hora <= a.Fecha_Hora
group by
a.fecha_hora,
a.ingreso,
a.egreso
order by
1 asc
go

drop table tmp
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

Sumar valores vista SQL

Publicado por rokefeler (22 intervenciones) el 17/04/2011 20:20:05
Muchas gracias, allfinal lo he hecho de una forma más sencilla que también me ha servido. Es algo así como:

SELECT Fecha Asiento, Cuenta, Importe.
(SELECT SUM(Importe) FROM Tabla_Movimientos WHERE Fecha Asiento BETWEEN 01/01/1990 AND a1.Fecha Asiento) AS Acumulado
FROM Tabla_Movimientos AS a1

De todas maneras, gracias!!!
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