Atualizar registro caso atenda a condição

SQL Server

20/08/2014

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
Sidnei Junior

Sidnei Junior

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

20/08/2014

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) ... 
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

20/08/2014

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.
GOSTEI 0
POSTAR