UPDATE BASEADO EM UM TABELA

Firebird

30/07/2014

Boa tarde.

Preciso fazer um update em uma tabela, mas os dados que deverao ser inseridos serao coletados a partir de um select feito em uma outra tabela exatamente igual.

Alguem poderia me ajudar a fazer esta operacao?

Obrigado.
Willyan Fernandes

Willyan Fernandes

Curtidas 0

Melhor post

Fabiano Carvalho

Fabiano Carvalho

30/07/2014

Faça o cruzamento da tabela utilizando INNER JOIN
GOSTEI 1

Mais Respostas

Willyan Fernandes

Willyan Fernandes

30/07/2014

Tentei o comando abaixo

update producao set producao.ficha_tecnica =
(SELECT fichas_tecnicas.ficha_tecnica
FROM fichas_tecnicas
INNER JOIN PRODUCAO
ON fichas_tecnicas.ficha_tecnica=PRODUCAO.ficha_tecnica
WHERE producao.PRODUTO= fichas_tecnicas.produto )


Porem tive o seguinte retorno:
multiple rows in singleton select.
GOSTEI 0
William

William

30/07/2014

A subquery pode retornar apenas 1 registro, no seu caso está retornando múltiplas linhas!!

Reveja a cláusula WHERE.
GOSTEI 0
Isaac Jose

Isaac Jose

30/07/2014

Tentei o comando abaixo

update producao set producao.ficha_tecnica =
(SELECT fichas_tecnicas.ficha_tecnica
FROM fichas_tecnicas
INNER JOIN PRODUCAO
ON fichas_tecnicas.ficha_tecnica=PRODUCAO.ficha_tecnica
WHERE producao.PRODUTO= fichas_tecnicas.produto )


Porem tive o seguinte retorno:
multiple rows in singleton select.


nao conheço o Fb mais achei esse exemplo aqui espero que ajude

UPDATE
Cliente Cli
SET
DataUltimaCompra =
(SELECT Max(DataEntrada) FROM Pedidos Ped WHERE Ped.CodCliente =
Cli.CodCliente);
GOSTEI 0
Willyan Fernandes

Willyan Fernandes

30/07/2014

Infelizmente não deu certo.

O comando roda, porem nao preenche o campo na tabela producao.
GOSTEI 0
Isaac Jose

Isaac Jose

30/07/2014

Infelizmente não deu certo.

O comando roda, porem nao preenche o campo na tabela producao.


vc ja rodou o sql e ele esta trazendo o valor correto?
GOSTEI 0
Willyan Fernandes

Willyan Fernandes

30/07/2014

SIM!!!
GOSTEI 0
Isaac Jose

Isaac Jose

30/07/2014

SIM!!!


:(
veja se ajuda ...http://comments.gmane.org/gmane.comp.db.firebase.portuguese/89192
GOSTEI 0
Alisson Santos

Alisson Santos

30/07/2014

Verifique se o sql está retornando todos os valores?
Pois quando utiliza o inner join faz uma ligação forte que precisa os dados conter nas duas tabelas.
Se for o caso posso te auxiliar com um acesso remoto me mostrando a tabela ou me passe a estrutura da tabela que monto o sql e te mando ele funcionando.
GOSTEI 0
POSTAR