PDA

Ver la Versión Completa : Comparar TIME en Interbase


payo7
19-10-2008, 19:40:06
Perdon por tanta pregunta, pero ya casi estoy por terminar. Tengo un problema al comparar dos tablas, en el tipo de campo TIME. Tengo lo siguiente en un trigger:
CREATE TRIGGER VENTAS_CHANGE FOR TICKETS1
BEFORE INSERT
AS
BEGIN
UPDATE COLECTOR
SET EXISTENCIAS = CANTIDAD - TICKETS1.CANTIDAD,
OBSERVACIONES = 'AJUSTADO'
WHERE CODIGO = TICKETS1.CODIGO
AND
HORA<TICKETS1.HORA;
END

Ya lo he probado y todo lo hace bien, hasta que llega al comparar la hora de la tabla COLECTOR, con la hora de la tabla TICKETS1. El tipo de campo para ambas tablas en la hora es TIME. Tendria que cambiar el tipo de campo de TIME a alguno otro? Le he quitado esa condicion y lo hace bien, el ajuste y todo, pero al agregar el AND y la condicion de la hora, ya no lo hace. Estoy usando Interbase 2007, gracias.

rastafarey
03-11-2008, 21:10:26
CREATE TRIGGER VENTAS_CHANGE FOR TICKETS1
BEFORE INSERT
AS
BEGIN
UPDATE COLECTOR
SET EXISTENCIAS = CANTIDAD - TICKETS1.CANTIDAD,
OBSERVACIONES = 'AJUSTADO'
WHERE CODIGO = TICKETS1.CODIGO
AND
HORA<TICKETS1.HORA;
END

Es igual a

CREATE TRIGGER VENTAS_CHANGE FOR TICKETS1
BEFORE INSERT
AS
BEGIN

UPDATE COLECTOR
SET EXISTENCIAS = CANTIDAD - TICKETS1.CANTIDAD,
OBSERVACIONES = 'AJUSTADO'
WHERE CODIGO = CODIGO
AND
HORA<HORA;

END

Osea que estas comparando los mismos Valores
CODIGO = TICKETS1.CODIGO -- Cierto siempre
AND
HORA<TICKETS1.HORA -- False Siempre

CREATE TRIGGER VENTAS_CHANGE FOR TICKETS1
BEFORE INSERT
AS
BEGIN

UPDATE COLECTOR
SET EXISTENCIAS = CANTIDAD - TICKETS1.CANTIDAD,
OBSERVACIONES = 'AJUSTADO'
WHERE CODIGO = New.CODIGO
AND
HORA<New.Hora;

END

New.Hora, New.CODIGO solo los valores que vienen entrando

WHERE CODIGO = TICKETS1.CODIGO --Esta demas siempre va a ser igual