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()).