UPDATE USANDO DUAS TABELAS NO IB6
11/03/2003
0
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]
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
Curtir tópico
+ 0
Responder
Posts
11/03/2003
Anonymous
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.
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.
Responder
Clique aqui para fazer login e interagir na Comunidade :)