Aplicacion de PAGO a Saldos (me trae frito !!!!)

10/09/2003 - 02:22 por Isaías | Informe spam
Si, es un query que debo crear y me trae frito, ya que
nunca he realizado este tipo que queries.

Tengo una Tabla (CLIENTE), donde tengo

cCuenta char(20),
iSaldo30 numeric(9,2)
iSaldo60 numeric(9,2)

Me envian un archivo texto con movimientos de PAGOS, que
subo mediante BULK INSERT

cCuenta char(20),
iPago numeric(9,2)

Debo APLICAR, el pago, primero al iSaldo60 y si queda
remanente del PAGO, aplicarlo a iSaldo30.

Se que alguien en este foro ya lo hizo, pregunta, ¿Se
podra hacer en un solo Query o debo seguir desarrollando
mis CURSORES?.

Gracias por sus aportaciones

PD: Por eso es que ya no he estado con "ustedes" SNIF !!!
 

Leer las respuestas

#1 Javier Loria
10/09/2003 - 05:25 | Informe spam
Hola Isaías:
Asumiendo que cCuenta es Llave Primaria o Unique not Null en ambas
tablas, y que todos los saldos son no nulos, creo que seria asi:
/* Codigo de Actualizacion */
UPDATE CLIENTE
SET iSaldo60= CASE WHEN iSaldo60<iPago THEN 0
ELSE iSaldo60-iPago
END,
iSaldo30 ÊSE WHEN iSaldo60<iPago
THEN
iSaldo30-(iPago-iSaldo60)
ELSE iSaldo30
END
FROM Cliente JOIN Pagos ON
Cliente.cCuenta=Pagos.cCuenta
/* Fin de codigo de Actualizacion */
La restriccion de requerir Llave Primaria sobre la tabla de Pagos puede ser
excesiva, en ese caso tendras que reemplazar el JOIN Pagos ON con

JOIN (SELECT cCuenta, SUM(iPago) AS iPago
FROM Pagos
GROUP BY cCuenta) ON


Espero te sirva,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Isaías escribio:
Si, es un query que debo crear y me trae frito, ya que
nunca he realizado este tipo que queries.

Tengo una Tabla (CLIENTE), donde tengo

cCuenta char(20),
iSaldo30 numeric(9,2)
iSaldo60 numeric(9,2)

Me envian un archivo texto con movimientos de PAGOS, que
subo mediante BULK INSERT

cCuenta char(20),
iPago numeric(9,2)

Debo APLICAR, el pago, primero al iSaldo60 y si queda
remanente del PAGO, aplicarlo a iSaldo30.

Se que alguien en este foro ya lo hizo, pregunta, ¿Se
podra hacer en un solo Query o debo seguir desarrollando
mis CURSORES?.

Gracias por sus aportaciones

PD: Por eso es que ya no he estado con "ustedes" SNIF !!!

Preguntas similares