duvida sentença no firebird

Firebird

03/11/2016

Amigos boa tarde!
estou precisando rodar um script em um banco de dados firebird , porém não tenho muito conhecimento.estou precisando colocar o valor da quantidade para 0 na tabela produtoempresa , porem a condição que preciso esta em outra tabela , por exemplo vou colocar o estoque = 0 ( tabela produtoempresa) onde o codigointerno ='241' (tabela produtoeservico ) e produtoempresaid seja igual produtoeservicoid .

esta é a sentença que coloquei , porem esta dando erro , a msg do erro esta logo abaixo, muito obrigado pela atenção e ajuda

update produtoempresa
set quantidade = '0'
from produtoeservico ps,
where ps.codigointerno = '241'
and produtoempresaid = ps.produtoeservicoid


mensagem de erro:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, column 1.
From.
Marcio

Marcio

Curtidas 0

Melhor post

Hélio Devmedia

Hélio Devmedia

03/11/2016

O Firebird não aceita este tipo de comando. Você precisa fazer assim:

update
produtoempresa e
set
e.quantidade = '0'
where
(select ps.codigointerno from produtoeservico ps where e.produtoempresaid = ps.produtoeservicoid ) = '241' ;

Esta é a sintaxe que o firebird aceita para update.

Se o SQL não rodar, tente verificar os campos se estão com sufixos corretamente ('e' e 'ps')

Caso funcione, deixe seu comentário e dê um Joinha para sabermos que funcionou...
GOSTEI 2

Mais Respostas

Marcio

Marcio

03/11/2016

Hélio
Deu certinho , resolveu meu problema .Muito Obrigado pela ajuda.
Vocês são feras mesmo .
GOSTEI 0
POSTAR