Ayuda con un trigger de control de balance

25/09/2006 - 22:29 por Tito | Informe spam
Suponiendo que tengo estas tablas (solo pongo los campos relevantes):

Tabla: Debito
Campos: NumeroDebito,ValorDebito (puede ser positivo o negativo), .

Tabla: CreditoHeader
Campos: NumeroCredito, ..

Tabla: CreditoDetalle
Campos: NumeroCredito, NumeroDebito, ValorAplicado (tiene el signo del
debito que se aplica)

(o sea un CreditoDetalle puede aplicar a varios Debitos).

El balance de un debito es aritmeticamente Debito.ValorDebito menos la
suma de los ValorAplicado's en CreditoDetalle a ese debito (Con su signo
algebraico)

Necesito hacer un trigger que me controle que el balance de un debito no se
haga negativo para el caso en que Debito.ValorDebito sea positivo y tampoco
que se haga positivo cuando Debito.ValorDebito sea negativo.

Se que es una funcion del signo original de Debito.ValorDebito (funcion
Sign()) pero no me sale.

Alguna ayuda ?

Nota: El balance no se guarda sino que se calcula cada vez. Son tablas
pequenas.

Preguntas similare

Leer las respuestas

#1 Maxi
26/09/2006 - 03:13 | Informe spam
Hola, me perdi y ademas no soy bueno para las finanzas :-p, si me pasas las
tablas, ejemplos de registros y como deberia quedar podria ayudarte



Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker
www.sqlgurus.org
Email:


"Tito" wrote in message
news:
Suponiendo que tengo estas tablas (solo pongo los campos relevantes):

Tabla: Debito
Campos: NumeroDebito,ValorDebito (puede ser positivo o negativo), .

Tabla: CreditoHeader
Campos: NumeroCredito, ..

Tabla: CreditoDetalle
Campos: NumeroCredito, NumeroDebito, ValorAplicado (tiene el signo del
debito que se aplica)

(o sea un CreditoDetalle puede aplicar a varios Debitos).

El balance de un debito es aritmeticamente Debito.ValorDebito menos la
suma de los ValorAplicado's en CreditoDetalle a ese debito (Con su signo
algebraico)

Necesito hacer un trigger que me controle que el balance de un debito no
se haga negativo para el caso en que Debito.ValorDebito sea positivo y
tampoco que se haga positivo cuando Debito.ValorDebito sea negativo.

Se que es una funcion del signo original de Debito.ValorDebito (funcion
Sign()) pero no me sale.

Alguna ayuda ?

Nota: El balance no se guarda sino que se calcula cada vez. Son tablas
pequenas.



Respuesta Responder a este mensaje
#2 Maxi
26/09/2006 - 03:13 | Informe spam


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker
www.sqlgurus.org
Email:


"Tito" wrote in message
news:
Suponiendo que tengo estas tablas (solo pongo los campos relevantes):

Tabla: Debito
Campos: NumeroDebito,ValorDebito (puede ser positivo o negativo), .

Tabla: CreditoHeader
Campos: NumeroCredito, ..

Tabla: CreditoDetalle
Campos: NumeroCredito, NumeroDebito, ValorAplicado (tiene el signo del
debito que se aplica)

(o sea un CreditoDetalle puede aplicar a varios Debitos).

El balance de un debito es aritmeticamente Debito.ValorDebito menos la
suma de los ValorAplicado's en CreditoDetalle a ese debito (Con su signo
algebraico)

Necesito hacer un trigger que me controle que el balance de un debito no
se haga negativo para el caso en que Debito.ValorDebito sea positivo y
tampoco que se haga positivo cuando Debito.ValorDebito sea negativo.

Se que es una funcion del signo original de Debito.ValorDebito (funcion
Sign()) pero no me sale.

Alguna ayuda ?

Nota: El balance no se guarda sino que se calcula cada vez. Son tablas
pequenas.



Respuesta Responder a este mensaje
#3 Jose Antonio
27/09/2006 - 00:10 | Informe spam
Una vista indexada no te solucionaria el problema?

"Tito" escribió en el mensaje
news:
Suponiendo que tengo estas tablas (solo pongo los campos relevantes):

Tabla: Debito
Campos: NumeroDebito,ValorDebito (puede ser positivo o negativo), .

Tabla: CreditoHeader
Campos: NumeroCredito, ..

Tabla: CreditoDetalle
Campos: NumeroCredito, NumeroDebito, ValorAplicado (tiene el signo del
debito que se aplica)

(o sea un CreditoDetalle puede aplicar a varios Debitos).

El balance de un debito es aritmeticamente Debito.ValorDebito menos la
suma de los ValorAplicado's en CreditoDetalle a ese debito (Con su signo
algebraico)

Necesito hacer un trigger que me controle que el balance de un debito no
se haga negativo para el caso en que Debito.ValorDebito sea positivo y
tampoco que se haga positivo cuando Debito.ValorDebito sea negativo.

Se que es una funcion del signo original de Debito.ValorDebito (funcion
Sign()) pero no me sale.

Alguna ayuda ?

Nota: El balance no se guarda sino que se calcula cada vez. Son tablas
pequenas.



Respuesta Responder a este mensaje
#4 Tito
27/09/2006 - 02:28 | Informe spam
Claro que si pero como controlo que el balance no sea negativo ?


"Jose Antonio" wrote in message
news:
Una vista indexada no te solucionaria el problema?

"Tito" escribió en el mensaje
news:
Suponiendo que tengo estas tablas (solo pongo los campos relevantes):

Tabla: Debito
Campos: NumeroDebito,ValorDebito (puede ser positivo o negativo), .

Tabla: CreditoHeader
Campos: NumeroCredito, ..

Tabla: CreditoDetalle
Campos: NumeroCredito, NumeroDebito, ValorAplicado (tiene el signo del
debito que se aplica)

(o sea un CreditoDetalle puede aplicar a varios Debitos).

El balance de un debito es aritmeticamente Debito.ValorDebito menos la
suma de los ValorAplicado's en CreditoDetalle a ese debito (Con su signo
algebraico)

Necesito hacer un trigger que me controle que el balance de un debito no
se haga negativo para el caso en que Debito.ValorDebito sea positivo y
tampoco que se haga positivo cuando Debito.ValorDebito sea negativo.

Se que es una funcion del signo original de Debito.ValorDebito (funcion
Sign()) pero no me sale.

Alguna ayuda ?

Nota: El balance no se guarda sino que se calcula cada vez. Son tablas
pequenas.







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