UPDATE USANDO DUAS TABELAS NO IB6

Firebird

11/03/2003

AI GALERA DO FORUM!!
GOSTARIA DE SABER UMA MANEIRA DE FAZER UM UPDATE USANDO DADOS DE DUAS TABELAS, USANDO SUBQUERYS... SEGUE ABAIXO UM 2 EXEMPLOS:
1: INSTRUÇÃO

UPDATE LOG_LOGRADOURO RUA
SET LOG_BAI_NOME = (SELECT BAI.BAI_NO FROM LOG_BAIRRO BAI
WHERE BAI.COD = RUA.COD ) WHERE RUA.CODBAIRRO = BAI.COD

2: PROCEDURE

FOR SELECT BAI.BAI_NO,RUA.CODBAIRRO FROM LOG_BAIRRO BAI,LOG_LOGRADOURO RUA WHERE WHERE RUA.CODBAIRRO = BAI.COD
INTO :BAINOME,:BAICOD DO
BEGIN
SUSPEND;
UPDATE LOG_LOGRADOUR
SET LOG_BAI_NOME = :BAINOME WHERE CODBAIRRO = :BAICOD
END

EM TODOS OS CASOS Ñ DEU CERTO A INSTRUÇÃO Ñ ACEITA SUBQUERYS NO UPDATE E A PROCEDURE Ñ ATUALIZOU OS DADOS...

POR ISSO PERGUNTO:

EXISTE UMA MANEIRA DE FAZER UM UPDATE PEGANDO PARÂMETROS DE OUTRA TABELA????

FICAREI MUITO GRATO POR QUALQUER AJUDA!!![b:c375379960][/b:c375379960]


Anonymous

Anonymous

Curtidas 0

Respostas

Anonymous

Anonymous

11/03/2003

O problema do sub-query é que ela tem que retornar apenas uma linha para que se possa fazer o update

Olhe o exemplo de atualizacao de estoque

update tb_itens
set
total_estoque =
(Select total_estoque from tb_itens where cod=:cod) + Qtd_Entra
where
cod=:cod

Observe que ele so retornou uma linha, no seu caso o parametro é bairro e fatalmente ele ira retornar vários bairros ou seja varios registros.


GOSTEI 0
POSTAR