UPDATE PRODUTO_SERVICO SET STATUS = 1

WHERE COD_PRODUTO_SERVICO NOT IN(

SELECT DISTINCT

 I.COD_PRODUTO_SERVICO

FROM TRANSACAO_ESTOQUE T

INNER JOIN TRANSACAO_ESTOQUE_ITEM I ON I.COD_TRANSACAO_ESTOQUE = T.COD_TRANSACAO_ESTOQUE

WHERE T.DATA >= DATEADD(YEAR,-1,GETDATE())

)


Esse código busca todos os produtos que não estão sendo usados a mais de um ano e atualiza o status para inativo,

usando o NOT IN para fazer um SUB SELECT buscando os produtos não usados a mais de um ano atraves do DATEADD(YEAR, -1, GETDATE()).