Nueva en SQL preguntica sobre balances clientes

06/10/2004 - 01:32 por Berta Gomez | Informe spam
Hola, estoy empezando con un programita en sql server y he visto que este es
un foro muy bueno y tambien que no soy la unica aprendiz :)

En una aplicacion de cuentas por cobrar ya logre hacer que un formulario me
registre una transaccion positiva o negativa correctamente. Tengo una
tabla de clientes y requiero los balances para generar estados de cuenta.

Como es mejor hacer para que me mantenga los balances actualizados de los
clientes ? Tengo que calcularlos cada vez ? o guardarlos en una columna de
la tabla de clientes ? como es mejor y como se hace ?

Berta Gomez Gonzalez

Preguntas similare

Leer las respuestas

#1 Isaías
06/10/2004 - 02:00 | Informe spam
Bueno, para eso puedes utilizar los triggers, para que
cuando se inserte un registro, dependiendo del tipo de
registro (Abono o Cargo), hagas la correspondiente SUMA
hacia el catalogo de clientes.

Saludos
#2 Javier Loria
06/10/2004 - 02:52 | Informe spam
Hola:
En mi opinon, usaria Balances Mensuales y calcularia el mes en proceso
basado en los movimientos actuales.
Esto tiene cierta redundancia, lo que puede dar problemas, pero es mejor
a los triggers.
Saludos,

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

"Berta Gomez" wrote in message
news:
Mostrar la cita
es
Mostrar la cita
me
Mostrar la cita
de
Mostrar la cita
#3 Berta Gomez
06/10/2004 - 03:33 | Informe spam
Mostrar la cita
Podrias explicarme mejor ? Te refieres a un proceso de cerrar los meses ?

Mostrar la cita
mejor
Mostrar la cita
este
Mostrar la cita
cuenta.
Mostrar la cita
los
Mostrar la cita
columna
Mostrar la cita
#4 Javier Loria
06/10/2004 - 05:36 | Informe spam
Hola:
Exacto. Una alternativa, sujeta a criticas:
==CREATE TABLE DocumentosxCobrar(
NumeroFactura INT
NOT NULL PRIMARY KEY
CHECK(NumeroFactura>0)
, CodigoCliente INT NOT NULL
CHECK(CodigoCliente>0)
, MontoFactura DECIMAL(9,2)
NOT NULL CHECK(MontoFactura>0)
)

CREATE TABLE SaldosMensuales(
NumeroFactura INT NOT NULL
REFERENCES DocumentosxCobrar(NumeroFactura)
, Mes SMALLDATETIME NOT NULL
CHECK( DATEPART(Minute,Mes)=0 AND
DATEPART(Hour,Mes)=0 AND
DATEPART(Day,Mes)=1)
, SaldoMensualInicial DECIMAL(9,2) NOT NULL
CHECK (SaldoMensualInicial>0)
, CONSTRAINT PK_SaldosMensuales
PRIMARY KEY(NumeroFactura, Mes)
)

CREATE TABLE Pagos(
NumeroRecibo INT NOT NULL
PRIMARY KEY
, FechaRecibo SMALLDATETIME NOT NULL
, NumeroFactura INT NOT NULL
REFERENCES DocumentosxCobrar(NumeroFactura)
, MontoAbono DECIMAL(9,2) NOT NULL
, MesRegistro SMALLDATETIME
NULL
CHECK( (DATEPART(Minute,MesRegistRo)=0
AND DATEPART(Hour,MesRegistRo)=0
AND DATEPART(Day,MesRegistRo)=1))
, CONSTRAINT FK_PagosSaldosMensuales
FOREIGN KEY (NumeroFactura, MesRegistro)
REFERENCES SaldosMensuales(NumeroFactura, Mes)
)
== Tiene un monton de "supuestos" que puede no se apliquen a tu situacion,
revisalo a ver si es un esquema que te gustaria usar.
Tiene la ventaja que no usa triggers (que hacen mas lenta la aplicacion)
y los saldos solo se usan como un punto de arranque para aplicar los pagos
de un periodo en particular, no necesariamente tiene que ser mensual, podria
ser de 3 meses.
Saludos,

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

"Berta Gomez" wrote in message
news:
Mostrar la cita
proceso
Mostrar la cita
formulario
Mostrar la cita
una
Mostrar la cita
#5 Berta Gomez
06/10/2004 - 06:50 | Informe spam
Muchas gracias.

Berta Gomez


"Javier Loria" wrote in message
news:
Mostrar la cita
situacion,
Mostrar la cita
aplicacion)
Mostrar la cita
podria
Mostrar la cita
?
Mostrar la cita
de
Mostrar la cita
Ads by Google
Search Busqueda sugerida