ERRO AO EXECUTAR SQL UPDATE COM TABELAS UNIDAS

Firebird

30/05/2012

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!
Raphael Noé

Raphael Noé

Curtidas 0

Respostas

William

William

30/05/2012

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.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

30/05/2012

Acho que você vai precisar de uma subquery nesse caso.
UPDATE TABELA WHERE CAMPO IN (SELECT CAMPO FROM TABELA ...)
GOSTEI 0
POSTAR