Cita:
Iniciado por gnzsoloyo
No puedes. Sólo podrás ver si hay un datos entrantes válidos en el UPDATE que haces...
Pero creo que si piensas un momento lo que tu mismo dices, verás la respuesta: Si tienes un campo que sólo cargas cuando haces el borrado lógico (así se denomina), entonces ese campo será NULL en todos los UPDATE excepto en ese caso...
Me parece que con sólo razonarlo ya puedes ver cuál es la condición a cumplir. ¿no?
No se si en este caso el valor cero se considera NULL pero se podría poner una condición para el nuevo valor de "estado" (si es uno hace las operaciones de actualización y si es cero hace las operaciones del borrado lógico) pero de nuevo tengo problemas con la sintaxis, ¿Podrías ayudarme?
Código MySQL:
Ver originalUPDATE obra
SET `egresos_t`= obra.egresos_t
+ (NEW.egresos
- OLD.egresos
), `ingresos_t` = obra.ingresos_t
+ (NEW.ingresos
- OLD.ingresos
), `recepcion_t`= obra.recepcion_t
+ (NEW.recepcion
- OLD.recepcion
) , `combustible_recepcion_t`= obra.combustible_recepcion_t
+ (NEW.combustible_recepcion
- OLD.combustible_recepcion
), `combustible_emision_t` = obra.combustible_emision_t
+ (NEW.combustible_emision
- OLD.combustible_emision
) WHERE obra.codigo
= OLD.cod_obra
; UPDATE obra
SET `egresos_t`= obra.egresos_t
- OLD.egresos
, `ingresos_t` = obra.ingresos_t
- OLD.ingresos
, `recepcion_t`= obra.recepcion_t
- OLD.recepcion
, `combustible_recepcion_t`= obra.combustible_recepcion_t
- OLD.combustible_recepcion
, `combustible_emision_t` = obra.combustible_emision_t
- OLD.combustible_emision
WHERE obra.codigo
= OLD.cod_obra
; WHERE obra.codigo
= NEW.cod_obra