Fórum ERRO AO EXECUTAR SQL UPDATE COM TABELAS UNIDAS #417768
30/05/2012
0
Olá, pessoal!
Sou iniciante na linguagem SQL e não estou conseguindo executar a seguinte tarefa:
Tenho um base de dados FDB (ME.FDB) na qual possui varias tabelas, porém no processo utilizo apenas duas, a tabela PRODUTOS_DESCRICOES (id_produto, descricao) e a tabela PRODUTOS_PRECOS (id_produto, produto_preco).
Enfim, o quero é que apenas os produtos que possuem em sua descrição a expressão DOTE ESM BL TRAD sofram alteração no preço de venda. Para isso usei a seguinte SQL.
UPDATE PRODUTOS_PRECOS
SET PRECO_VENDA = 2
FROM PRODUTOS_PRECOS
INNER JOIN PRODUTOS_DESCRICOES
ON PRODUTOS_PRECOS.ID_PRODUTO = PRODUTOS_DESCRICOES.ID_PRODUTO
WHERE PRODUTOS_DESCRICOES.DESCRICAO LIKE %DOTE ESM BL TRAD%
O EMS InterBase/Firebird Manager 3 retorna com o erro:
fmSQLEditor.Query:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, column 1.
FROM.
*A conexão com a base de dados é feita pelo Firebird 2.1.3
Desde já, agradeço pela cooperação!
Sou iniciante na linguagem SQL e não estou conseguindo executar a seguinte tarefa:
Tenho um base de dados FDB (ME.FDB) na qual possui varias tabelas, porém no processo utilizo apenas duas, a tabela PRODUTOS_DESCRICOES (id_produto, descricao) e a tabela PRODUTOS_PRECOS (id_produto, produto_preco).
Enfim, o quero é que apenas os produtos que possuem em sua descrição a expressão DOTE ESM BL TRAD sofram alteração no preço de venda. Para isso usei a seguinte SQL.
UPDATE PRODUTOS_PRECOS
SET PRECO_VENDA = 2
FROM PRODUTOS_PRECOS
INNER JOIN PRODUTOS_DESCRICOES
ON PRODUTOS_PRECOS.ID_PRODUTO = PRODUTOS_DESCRICOES.ID_PRODUTO
WHERE PRODUTOS_DESCRICOES.DESCRICAO LIKE %DOTE ESM BL TRAD%
O EMS InterBase/Firebird Manager 3 retorna com o erro:
fmSQLEditor.Query:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, column 1.
FROM.
*A conexão com a base de dados é feita pelo Firebird 2.1.3
Desde já, agradeço pela cooperação!
Raphael Noé
Curtir tópico
+ 0
Responder
Posts
01/06/2012
William
Colega até onde eu conheço sobre SQL, não se usa clausula FROM e operações UPDATE.
Na próprio UPDATE <TABELA> já está sendo informado o nome da tabela.
Na próprio UPDATE <TABELA> já está sendo informado o nome da tabela.
Responder
Gostei + 0
01/06/2012
Joel Rodrigues
Acho que você vai precisar de uma subquery nesse caso.
UPDATE TABELA WHERE CAMPO IN (SELECT CAMPO FROM TABELA ...)
UPDATE TABELA WHERE CAMPO IN (SELECT CAMPO FROM TABELA ...)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)