20/08/2014

Atualizar registro caso atenda a condição

Boa tarde pessoal ve se conseguem me ajudar

tenho três tabelas conv_detail que possui o campo no qual quero realizar o update campo saldo_devedor e conv_id como chave primária desta tabela

tenho também as tabelas conveniados(id = conv_id) e empresas na tabela conveniados tenho o campo empres_id como chave estrangeira da tabela empresas

O lance é o seguinte quero fazer um update na tabela conv_detail alterando o campo saldo_devedor de null para 0 caso o conveniado pertença a uma determinada empresa. Eu tava indo mais ou menos por essa linha de raciocínio porém não consegui

update CONV_DETAIL set SALDO_DEVEDOR = 0
from CONV_DETAIL cd inner join CONVENIADOS c
on cd.CONV_ID = c.CONV_ID
where
c.CONV_ID = (select c.CONV_ID from CONVENIADOS where EMPRES_ID = 45) and
cd.SALDO_DEVEDOR = null

Desde já obrigado

Respostas

20/08/2014

Joel Rodrigues

Ao invés de c.CONV_ID = (select ...
Use o operador IN:
... c.CONV_ID IN (select c.CONV_ID from CONVENIADOS where EMPRES_ID = 45) ... 
Responder Citar

20/08/2014

Joel Rodrigues

Explicando: esse select dentro de parênteses vai retornar vários registros com o ID dos conveniados ligados à empresa 45. Então você verifica se c.CONV_ID está contido nessa coleção de registros.
Responder Citar