Alerta cuando se modifique un campo especificado

Buenos días.

Alguien que haya hecho una validación para que alerte cuando se modifique un campo especifico. Yo realice un query pero me trae al modificar cualquier campo y solo quiero uno en especifico, en este caso es el modelo el que quiero que me genere la alerta.

El codigo es el sgte:

select DISTINCT t0."SWW" as Modelo_Modificado, SUBSTRING(T0."ItemCode",4,20) as Clave,  t2."FirmName" as "Marca",
t0."U_MT_PROY" as PROYECTO, t4."CardName" as Proveedor
from oitm t0
inner join aitm t1 on t0."ItemCode" = t1."ItemCode"
inner join omrc t2 on t0."FirmCode" = t2."FirmCode" 
full outer join ocrd t4 on t4."CardCode" = t0."CardCode"
where (t1."SWW" <> t0."SWW" ) and t0."U_MT_ESTATUS" = 'Aprobado' and t0."U_MT_PROY" <> '' and  t0."UpdateDate" = CURRENT_DATE

De antemano Gracias

1 me gusta

te falta la condicional que busque en la ultima instancia del log:

and T1.loginstanc in (select max (loginstanc-1 ) from aitm where "ItemCoe"=T0."ItemCode")

buenos días,
probé tu query (yo no usé los campos de estatus y proyecto, pero lo demás sí) y obtuve el resultado esperado, es decir, valida cuando se modifica nada más el campo “sww”; no veo error en el código.

yo modifico otro campo que no sea modelo y me genera. que raro.!!

Por favor puedes probar con este?

select 
  DISTINCT t0."FirmCode", 
  t2."FirmName" as Modelo_Modificado, 
  SUBSTRING(T0."ItemCode", 4, 20) as Clave, 
  t2."FirmName" as "Marca", 
  t0."U_MT_PROY" as PROYECTO, 
  t4."CardName" as Proveedor --, T0."LogInstanc", T1."LogInstanc"--, T1."PrchseItem", T0."PrchseItem" --in (select max (T0."LogInstanc"-1 ), 
from 
  oitm t0 
  inner join aitm t1 on t0."ItemCode" = t1."ItemCode" --and T1."LogInstanc"=T0."LogInstanc"-1 AND T1."PrchseItem" != T0."PrchseItem"
  inner join omrc t2 on t0."FirmCode" = t2."FirmCode" full 
  outer join ocrd t4 on t4."CardCode" = t0."CardCode" 
where 
  (t1."FirmCode" <> t0."FirmCode") 
  and t0."U_MT_ESTATUS" = 'Aprobado' 
  and t0."U_MT_PROY" <> '' 
  and t0."UpdateDate" = CURRENT_DATE

hola de nuevo, lo probé y si funciona.
(adecuándolo a campos de mi base de datos que si se hayan modificado, pues firmcode no ha sufrido cambios)
Primero no me daba ningún registro, y al quitarle la condición del campo PrchseItem (porque en mis datos no aplicaría), ya salieron los registros de mis datos que cumplían las demás condiciones.

select 
  DISTINCT t0."firmcode", 
  t2."firmcode" as Modelo_Modificado, 
  SUBSTRING(T0."ItemCode", 4, 20) as Clave, 
  t2."FirmName" as "Marca", 
  t4."CardName" as Proveedor, 
  T0."LogInstanc", 
  T1."LogInstanc", 
  T1."PrchseItem", 
  T0."PrchseItem" 
from 
  oitm t0 
  inner join aitm t1 on t0."ItemCode" = t1."ItemCode" 
  inner join omrc t2 on t0."FirmCode" = t2."FirmCode" full 
  outer join ocrd t4 on t4."CardCode" = t0."CardCode" 
where 
  (t1."itemname" <> t0."itemname") 
  and t0."UpdateDate" = '[%1]' 
  and T1.loginstanc in (
    select 
      max (t8.loginstanc)-1 
    from 
      aitm t8 
    where 
      t8."ItemCode" = T0."ItemCode"
  )
2 Me gusta

Muchisimas Gracias!! Ahorita si funcionaa… :heart_eyes: