Duda en forma de una tabla

20/12/2004 - 21:02 por Tio | Informe spam
¡Hola!

Necesito crear una tabla que va a ser algo así como una libreta de saldos.

Campos:

fecha, concepto, ValorDebe, ValorHaber, Saldo



Lo que no se es si agregar el campo Saldo, ¿que opinan?.

La gran duda es que cuando se agreguen registros a esta tabla. teniendo en
cuenta que la ordenación será por "Fecha"... ¿como hago para que se
recalculen los saldos a partir del registro insertado?. (que no tiene porque
ser el último).

Un saludo! y gracias por la ayuda que me puedan prestar.

Preguntas similare

Leer las respuestas

#1 Manuel Vera
20/12/2004 - 21:19 | Informe spam
Yo le colocaría el campo saldo par no tener que ir recalculando la sumatoria
de todos los registros cada vez que desees mostrar el saldo la fecha X.

Salu2
MV

"Tio" wrote in message
news:
¡Hola!

Necesito crear una tabla que va a ser algo así como una libreta de saldos.

Campos:

fecha, concepto, ValorDebe, ValorHaber, Saldo



Lo que no se es si agregar el campo Saldo, ¿que opinan?.

La gran duda es que cuando se agreguen registros a esta tabla. teniendo en
cuenta que la ordenación será por "Fecha"... ¿como hago para que se
recalculen los saldos a partir del registro insertado?. (que no tiene


porque
ser el último).

Un saludo! y gracias por la ayuda que me puedan prestar.


Respuesta Responder a este mensaje
#2 Tio
20/12/2004 - 21:44 | Informe spam
OK, es lo que había pensado, ahora mi problema es:


ya que puede insertar registros que pueden tener cualquier fecha (no
consecutivos en el tiempo). ¿como me recomiendas que vaya actualizando el
saldo?. Pongo ejemplo:

Fecha Debe Haber Saldo
-
1/1/04 0 100 -1000
3/1/04 5 0 -995


si ahora ingresase una fecha tal que : 2/1/04, el problema sería recalcular
los saldos de esa fecha en adelante , y me gustaría hacerlo en un
procedimiento almacenado para evitar flujo de datos por la red. Pero no
tengo ninguna idea de como hacerlo.

?¿puedes ayudarme?.




"Manuel Vera" escribió en el mensaje
news:
Yo le colocaría el campo saldo par no tener que ir recalculando la
sumatoria
de todos los registros cada vez que desees mostrar el saldo la fecha X.

Salu2
MV

"Tio" wrote in message
news:
¡Hola!

Necesito crear una tabla que va a ser algo así como una libreta de
saldos.

Campos:

fecha, concepto, ValorDebe, ValorHaber, Saldo



Lo que no se es si agregar el campo Saldo, ¿que opinan?.

La gran duda es que cuando se agreguen registros a esta tabla. teniendo
en
cuenta que la ordenación será por "Fecha"... ¿como hago para que se
recalculen los saldos a partir del registro insertado?. (que no tiene


porque
ser el último).

Un saludo! y gracias por la ayuda que me puedan prestar.






Respuesta Responder a este mensaje
#3 Manuel Vera
20/12/2004 - 23:33 | Informe spam
Ups, que complejo.
Es raro que insertes un registro con una fecha antes del último.
Tu SP deberá ser algo complejo.
Primero obtener el saldo hasta la fecha que quieres registrar con un SELECT
de sumatoria.
Agregar el registro nuevo y actualizar el saldo.
Luego abrir un cursor con los registros posteriores a la fecha que necesitas
e irlos actualizando uno por uno.
¿Que pasa con la hora, no lo controlas, solo es por fecha?

En una especie de pseudocodigo seria algo como:

declare @misaldo numeric(18,2)
no recuerdo el orden de la resta aqui
select @misaldo = sum(debe) - sum(haber)
from tabla
where fecha <= @fecha

set @misaldo = @misaldo + @debe - @haber
inert into tabla vlues (bla bla bla, @misaldo )

declare cursor xyz as
select *
from tabla
where fecha > @fecha

open xyz
fetch next lista_de_vars

while status <> 0
begin
set @misaldo = @misaldo + @debe - @haber
update tabla set saldo = @misaldo where codigo = @codigo
fetch next lista_de_vars
end

close xyz
deallocate xyz

Seria algo asi
Deberas chequear la sintaxis de CURSOR pues es mas o meno lo que recuerdo.

Saludos
MV


"Tio" wrote in message
news:
OK, es lo que había pensado, ahora mi problema es:


ya que puede insertar registros que pueden tener cualquier fecha (no
consecutivos en el tiempo). ¿como me recomiendas que vaya actualizando el
saldo?. Pongo ejemplo:

Fecha Debe Haber Saldo
-
1/1/04 0 100 -1000
3/1/04 5 0 -995


si ahora ingresase una fecha tal que : 2/1/04, el problema sería


recalcular
los saldos de esa fecha en adelante , y me gustaría hacerlo en un
procedimiento almacenado para evitar flujo de datos por la red. Pero no
tengo ninguna idea de como hacerlo.

?¿puedes ayudarme?.




"Manuel Vera" escribió en el mensaje
news:
> Yo le colocaría el campo saldo par no tener que ir recalculando la
> sumatoria
> de todos los registros cada vez que desees mostrar el saldo la fecha X.
>
> Salu2
> MV
>
> "Tio" wrote in message
> news:
>> ¡Hola!
>>
>> Necesito crear una tabla que va a ser algo así como una libreta de
>> saldos.
>>
>> Campos:
>>
>> fecha, concepto, ValorDebe, ValorHaber, Saldo
>>
>>
>>
>> Lo que no se es si agregar el campo Saldo, ¿que opinan?.
>>
>> La gran duda es que cuando se agreguen registros a esta tabla. teniendo
>> en
>> cuenta que la ordenación será por "Fecha"... ¿como hago para que se
>> recalculen los saldos a partir del registro insertado?. (que no tiene
> porque
>> ser el último).
>>
>> Un saludo! y gracias por la ayuda que me puedan prestar.
>>
>>
>
>


Respuesta Responder a este mensaje
#4 Tio
20/12/2004 - 23:39 | Informe spam
OK, entiendo el algoritmo, es básicamente lo que había pensado, pero creo
que sería lento, así que voy a utilizar una restircción y es que los
registros deben ser consecutivos en lo que a fecha se refiere. La vida real
lo exigiría así.

En fin, muchas gracias, tu consejo me ha servido para revisarme un poco los
cursores y el procesamiento fila a fila, pero como bien indicas, no es lo
habitual que no se metan los registros ordenados por fecha.

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