[firebase-br] RES: Atualizar a tabela B com dados de A

Levi R. de Freitas levi.ribeiro em gmail.com
Sáb Set 8 11:30:19 -03 2018


Será apenas um update por linha e não três.

Um abraço,
Levi Ribeiro de Freitas
Celular: +55 12 98207-2828
Email: levi.ribeiro em gmail.com

Em 8 de set de 2018, à(s) 11:26, Levi R. de Freitas <levi.ribeiro em gmail.com> escreveu:

> Bom dia!
> 
> Faz apenas um selec com todas as informações que precisa atualizar na tabela estoque, trazendo os campos Chaves.
> 
> Pelo ibexpert gera o script de atualização informando tabela e where.
> 
> Pra grandes massas de dados tenho feito e funciona.
> 
> Um abraço,
> Levi Ribeiro de Freitas
> Celular: +55 12 98207-2828
> Email: levi.ribeiro em gmail.com
> 
> Em 8 de set de 2018, à(s) 08:21, Paulo Geloramo <assisinformatica em gmail.com> escreveu:
> 
>> Bom dia Levi,
>> 
>> Obrigado pela sugestão, mas não entendi
>> qual seria a forma que você propõe, se
>> puder detalhar como seria, posso fazer o teste
>> e postar aqui o resultado.
>> As duas formas que encontrei para atualizar
>> estão publicadas abaixo, usando EXECUTE BLOCK  (19 minutos) e
>> Update com Select (mais de 3 horas - desisti).
>> Firebid 2.5.8
>> Não tem Trigger e View
>> Force Write desligado
>> Indice para campo ID
>> Banco Dados 2.5 GB
>> As tabelas são diferentes
>> ====
>> UPDATE ESTOQUE Q
>> SET Q.REMESSA = COALESCE(Q.REMESSA + (
>> SELECT SUM(I.QUANTIDADE)
>> FROM NOTA_PONTO_ITEM I
>> WHERE I.ID_EDICAO = Q.ID_EDICAO AND I.ID_PONTO = Q.ID_PONTO), 0);
>> 
>> UPDATE ESTOQUE Q
>> SET Q.DEVOLUCAO = COALESCE(Q.DEVOLUCAO + (
>> SELECT SUM(I.DEVOLUCAO)
>> FROM CE_PONTO_ITEM I
>> WHERE I.ID_EDICAO = Q.ID_EDICAO AND I.ID_PONTO = Q.ID_PONTO), 0);
>> 
>> UPDATE ESTOQUE Q
>> SET Q.VENDA = COALESCE(Q.VENDA + (
>> SELECT SUM(I.VENDA)
>> FROM CE_PONTO_ITEM I
>> WHERE I.ID_EDICAO = Q.ID_EDICAO AND I.ID_PONTO = Q.ID_PONTO), 0);
>> 
>> =====
>> 
>> EXECUTE BLOCK
>> AS
>> DECLARE ID_EDICAO INTEGER;
>> DECLARE ID_PONTO INTEGER;
>> DECLARE REMESSA INTEGER;
>> DECLARE DEVOLUCAO INTEGER;
>> DECLARE VENDA INTEGER;
>> BEGIN
>>  FOR SELECT ID_EDICAO, ID_PONTO, QUANTIDADE
>>      FROM NOTA_PONTO_ITEM
>>      INTO :ID_EDICAO, :ID_PONTO, :REMESSA DO
>>  BEGIN
>>    UPDATE ESTOQUE
>>    SET REMESSA = COALESCE(REMESSA + :REMESSA, 0)
>>    WHERE ID_EDICAO = :ID_EDICAO AND ID_PONTO = :ID_PONTO;
>>  END
>> 
>>  FOR SELECT ID_EDICAO, ID_PONTO, DEVOLUCAO, VENDA
>>      FROM CE_PONTO_ITEM
>>      INTO :ID_EDICAO, :ID_PONTO, :DEVOLUCAO, :VENDA DO
>>  BEGIN
>>    UPDATE ESTOQUE
>>    SET DEVOLUCAO = COALESCE(DEVOLUCAO + :DEVOLUCAO, 0), VENDA =
>> COALESCE(VENDA + :VENDA, 0)
>>    WHERE ID_EDICAO = :ID_EDICAO AND ID_PONTO = :ID_PONTO;
>>  END
>> END
>> 
>> ======
>> 
>> 
>> --
>> Paulo Geloramo
>> www.assisinformatica.com
>> 
>> 
>> Em sex, 7 de set de 2018 às 20:35, Levi R. de Freitas <
>> levi.ribeiro em gmail.com> escreveu:
>> 
>>> Gera um script de atualização através de um select.
>>> 
>>> Um abraço,
>>> Levi Ribeiro de Freitas
>>> Celular: +55 12 98207-2828
>>> Email: levi.ribeiro em gmail.com
>>> 
>>> Em 7 de set de 2018, à(s) 15:40, Paulo Geloramo <
>>> assisinformatica em gmail.com> escreveu:
>>> 
>>>> As tabelas são diferentes.
>>>> --
>>>> Paulo Geloramo
>>>> www.assisinformatica.com
>>>> 
>>>> 
>>>> Em sex, 7 de set de 2018 às 13:15, centriscorps em gmail.com <
>>>> centriscorps em gmail.com> escreveu:
>>>> 
>>>>> O conteúdo das tabelas A e B são iguais?
>>>>> 
>>>>> Renato
>>>>> ______________________________________________
>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>> Para consultar mensagens antigas:
>>>>> http://www.firebase.com.br/pesquisa_lista.html
>>>>> 
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas:
>>> http://www.firebase.com.br/pesquisa_lista.html
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas:
>>> http://www.firebase.com.br/pesquisa_lista.html
>>> 
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html



Mais detalhes sobre a lista de discussão lista