Array
(
)

Atualizar registro caso atenda a condição

Sidnei Junior
|
MVP
    20 ago 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

Joel Rodrigues
   - 20 ago 2014

Ao invés de c.CONV_ID = (select ...
Use o operador IN:
#Código

... c.CONV_ID IN (select c.CONV_ID from CONVENIADOS where EMPRES_ID = 45) ... 

Joel Rodrigues
   - 20 ago 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.