consulta

19/09/2003 - 23:03 por Cam Acosta | Informe spam
Hola a todos,

en un esfuerzo por incursionar a la brigada anti cursores, como se puede
hacer esta consulta sin recurir a ellos:

Tengo la tabla:

IdMov Cant
1 10
2 5
3 -5
4 11

Y quiero una consulta con el saldo despues de cada movimiento (el orden es
por el id del movimiento)
IdMov Cant Saldo
1 10 10
2 5 15
3 -5 10
4 11 21

create table temporal(IdMov int primary key, Cant Int)

insert into temporal values(1,15)

insert into temporal values(2,5)

insert into temporal values(3,-5)

insert into temporal values(4,11)

Un saludo,

Camilo Acosta

Preguntas similare

Leer las respuestas

#1 Datatec
19/09/2003 - 23:42 | Informe spam
Hola, ah de ver varias formas, la primera que se me ocurre es como asi:


select IdMov, Cant,
Saldo = Cant + ISNULL((SELECT SUM(Cant) FROM temporal b WHERE b.IdMov <
a.IdMov), 0)
from temporal a

Saludos,
JCL

"Cam Acosta" escribió en el mensaje
news:Ow7$
Hola a todos,

en un esfuerzo por incursionar a la brigada anti cursores, como se puede
hacer esta consulta sin recurir a ellos:

Tengo la tabla:

IdMov Cant
1 10
2 5
3 -5
4 11

Y quiero una consulta con el saldo despues de cada movimiento (el orden es
por el id del movimiento)
IdMov Cant Saldo
1 10 10
2 5 15
3 -5 10
4 11 21

create table temporal(IdMov int primary key, Cant Int)

insert into temporal values(1,15)

insert into temporal values(2,5)

insert into temporal values(3,-5)

insert into temporal values(4,11)

Un saludo,

Camilo Acosta


Respuesta Responder a este mensaje
#2 Mariano Alvarez
19/09/2003 - 23:50 | Informe spam
Por que no desnormalizas la base de datos agregando un campo SALDO y agregas
un trigger para que te actualice el campo SALDO cada vez que das de alta un
registro?

De esa forma solo tienes un acceso adicional (select) por cada insert y
simplemente luego la consulta que precisas es un select directo.


Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Cam Acosta" wrote in message
news:Ow7$
Hola a todos,

en un esfuerzo por incursionar a la brigada anti cursores, como se puede
hacer esta consulta sin recurir a ellos:

Tengo la tabla:

IdMov Cant
1 10
2 5
3 -5
4 11

Y quiero una consulta con el saldo despues de cada movimiento (el orden es
por el id del movimiento)
IdMov Cant Saldo
1 10 10
2 5 15
3 -5 10
4 11 21

create table temporal(IdMov int primary key, Cant Int)

insert into temporal values(1,15)

insert into temporal values(2,5)

insert into temporal values(3,-5)

insert into temporal values(4,11)

Un saludo,

Camilo Acosta


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