Página 1 de 1

Dúvida Update + Join Oracle (RM)

Enviado: Ter, 04 Ago 2015 10:47 am
por mariosgomes
Bom dia,


Estou com uma dúvida na estrutura do Update em Oracle para atualização de uma das tabelas do meu sistema (RM Totvs).

1 - Tenho uma tabela de lançamentos financeiros chamada FLAN e outra de rateio chamada FLANRATCCU ;
2 - Preciso colocar tudo que está setado no centro de custo da Flan (codccusto da tabela FLAN) a mesma informação dentro da FLANRATCCU no campo centro de custo de dentro dela.

Ou seja update flanratccu set codccusto='xxxx' where ---> pegando a mesma informação que está na flan para aquele determinado lançamento. .

alguém pode me ajudar?

obrigado

Re: Dúvida Update + Join Oracle (RM)

Enviado: Ter, 04 Ago 2015 12:47 pm
por DanielNN
Olá mariosgomes, seja bem vindo ao fórum.

Bem, antes de pensar na possibilidade de ficar alterando o centro de custo da FLANRATCCU via UPDATE, você já verificou a parametrização dos lotes e como será montada o centro de custo? Pois assim você não precisaria replicar esse centro de custo.
Também é válido considerar que caso você precise alterar estes centro de custos para depois montar um relatório, talvez seja melhor apenas mostrar o centro de custo pai (da FLAN) para todas linhas filhas da FLANRATCCU.

De qualquer modo, o update seria assim:

Selecionar tudo

update FLANRATCCU fc
   set fc.codccusto = (select f.CODCUSTO 
                         from flan f
                        where f.codcoligada = fc.codcoligada
                          and f.idlan       = fc.idlan)
 where fc.idlan = &P_IDLAN
 /* Só altera para quem está diferente */
   and exists (select 1
                 from flan f
                where f.codcoligada  = fc.codcoligada
                  and f.idlan        = fc.idlan
                  and f.CODCUSTO    <> fc.codccusto);