Fórum update com base em outra tabela #54946
24/01/2006
0
update estoque set
vlr_estoque = (sp_p_unitario.unitario*estoque)
where exists(select indice, unitario from sp_p_unitario(:d) where estoque.indice=sp_p_unitario.indice)
como posso fazer?
thanks
Marcos Fernando
Curtir tópico
+ 0Posts
24/01/2006
Emerson Nascimento
uma pergunta:
o que é passado no parâmetro :d ?
Gostei + 0
24/01/2006
Marcos Fernando
Gostei + 0
24/01/2006
Marcos Fernando
da forma que você fez, a SP só é reconhecida pelo where e não pela instrução toda. por isso você não pode usá-la no set
mais como faço então?
(além de a sua instrução não relacionar a SP com a tabela de estoque, o que irá gerar erro).
update estoque set
vlr_estoque = (sp_p_unitario.unitario*estoque)
where exists(select indice, unitario from sp_p_unitario(:d) [color=red:6a6a67f934]where estoque.indice=sp_p_unitario.indice) [/color:6a6a67f934]
thanks
Gostei + 0
24/01/2006
Emerson Nascimento
update est set est.vlr_estoque = (spp.unitario * est.estoque) from estoque est inner join sp_p_unitario( :d ) spp on (spp.indice = est.indice)
acho que no FB você precisará repetir a instrução...
update estoque set vlr_estoque = (select max(sp_p_unitario.unitario) from sp_p_unitario( :d ) where sp_p_unitario.indice = estoque.indice) * estoque where estoque.indice in (select sp_p_unitario.indice from sp_p_unitario( :d ) )
Gostei + 0
31/01/2006
Rodolpho123
for select codcliente1, nome1 from clientes1 into :codcliente, :nome do begin update clientes2 set nome2 = :nome where codcliente2 = :codcliente end
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)