Fórum Update entre duas tabelas sem sucesso. #455511

17/09/2013

0

Bom dia,

Estou tentando fazer um Update entre duas tabelas do mesmo banco de dados (firebird).
Estou usando esse comando:

UPDATE PRODUTONOVO A SET A.descricao = (SELECT B.descricao FROM PRODUTO B WHERE B.codprod = A.codprod  )


Porém eu executo a instrução sem erro e fica até um tempo executando mais quando vou nas minhas tabelas não aconteceu nada.

Esse comando eu executo pelo sistema e pelo IBEXPERT.

Alguém tem idéia?
Osiel Gomes

Osiel Gomes

Responder

Posts

17/09/2013

Fabiano Carvalho

UPDATE A SET A.descricao = B.descricao 
FROM PRODUTONOVO  as A
INNER JOIN PRODUTO B 
ON B.codprod = A.codprod
Responder

Gostei + 0

17/09/2013

Osiel Gomes

UPDATE A SET A.descricao = B.descricao 
FROM PRODUTONOVO  as A
INNER JOIN PRODUTO B 
ON B.codprod = A.codprod


Dá erro no FROM.
Responder

Gostei + 0

17/09/2013

Rafael Brendolan

UPDATE A SET A.descricao = B.descricao 
FROM PRODUTONOVO  A
INNER JOIN PRODUTO B 
ON B.codprod = A.codprod
Responder

Gostei + 0

17/09/2013

Osiel Gomes

UPDATE A SET A.descricao = B.descricao 
FROM PRODUTONOVO  A
INNER JOIN PRODUTO B 
ON B.codprod = A.codprod



Não entendi o que mudou no comando mais de qualquer forma eu testei e o erro é o mesmo.

Valeu
Responder

Gostei + 0

17/09/2013

Fabiano Carvalho

Como assim?
Voce executa ele onde? Na aplicação ou direto no banco?
Responder

Gostei + 0

17/09/2013

Osiel Gomes

Como assim?
Voce executa ele onde? Na aplicação ou direto no banco?


Direto no banco, pelo IBEXPERT.
Responder

Gostei + 0

17/09/2013

Fabiano Carvalho

essas tabelas realmente tem referencias?

Execute o comando abaixo, e veja se retorna alguma linha

SELECT A.*
FROM PRODUTONOVO  as A
LEFT JOIN PRODUTO B
ON A.codprod = B.codprod
WHERE B.codprod IS NULL
Responder

Gostei + 0

17/09/2013

Osiel Gomes

essas tabelas realmente tem referencias?

Execute o comando abaixo, e veja se retorna alguma linha

SELECT A.*
FROM PRODUTONOVO  as A
LEFT JOIN PRODUTO B
ON A.codprod = B.codprod
WHERE B.codprod IS NULL


Sim retorno com informações...

As tabelas não tem um ligação uma com a outra pois só criei essa tabela PRODUTONOVO para retirar os dados dela, pois as informações da outra esta com problemas
Responder

Gostei + 0

17/09/2013

Fabiano Carvalho

Voce quer tirar de uma e passar pra outra, então é INSERT...SELECT e não update..

Explique exatamente o que voce precisa...
Responder

Gostei + 0

17/09/2013

Osiel Gomes

Voce quer tirar de uma e passar pra outra, então é INSERT...SELECT e não update..

Explique exatamente o que voce precisa...



Eu tenho uma tabela chamada PRODUTONOVO que esta com as informações correta na realidade só quero a descrição dessa tabela e jogar na tabela PRODUTO sendo que PRODUTO E PRODUTONOVO tem os mesmos campos e registros só que na tabela PRODUTONOVO o campo descrição esta do jeito que eu quero, então comparo os mesmo código entre as duas e só pego a descrição e jogo na outra através de update.

Não posso inserir por que as duas já estão com os registros.

Entendeu?
Responder

Gostei + 0

18/09/2013

Osiel Gomes

Alguma outra sugestão dos colegas?
Responder

Gostei + 0

19/09/2013

Fabiano Carvalho

Veja se retorna registros isso..
Naquela outra consulta retorno, porque existe registros na tabela produtonovo que não estão na tabela produto...

SELECT A.*
FROM PRODUTONOVO  as A
INNER JOIN PRODUTO B
ON A.codprod = B.codprod


Se essa consulta nao retornar nada, é porque tem algo errado, e os registros não se coincidem
Responder

Gostei + 0

19/09/2013

Deivison Melo

Retificando:

Dá uma olhada nos posts abaixo:

Primeira parte

[url]https://www.devmedia.com.br/uso-de-joins-em-instrucoes-update-e-delete-parte-01/9444[/url]

Segunda parte

[url]https://www.devmedia.com.br/uso-de-joins-em-instrucoes-update-e-delete-parte-02/9464[/url]

Abração e bons códigos!
Responder

Gostei + 0

19/09/2013

Osiel Gomes

Veja se retorna registros isso..
Naquela outra consulta retorno, porque existe registros na tabela produtonovo que não estão na tabela produto...

SELECT A.*
FROM PRODUTONOVO  as A
INNER JOIN PRODUTO B
ON A.codprod = B.codprod


Se essa consulta nao retornar nada, é porque tem algo errado, e os registros não se coincidem


Retorna centenas de registros.
Responder

Gostei + 0

19/09/2013

Deivison Melo

se seu select for o aqui abaixo:

SELECT A.*
FROM PRODUTONOVO as A
INNER JOIN PRODUTO B
ON A.codprod = B.codprod

Kd a restrição?

SELECT A.*
FROM PRODUTONOVO as A
INNER JOIN PRODUTO B
ON A.codprod = B.codprod
where A.codprod = codigo_qualquer // que seria o q vc quer atualizar realmente!




Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar