[firebase-br] SQL que funcionava no FB 2.1 não funciona como esperado no FB 3.0

Fausto Cintra Junior fcj001 em gmail.com
Qua Jan 15 10:59:53 -03 2020


Obrigado Gladiston, deu certo.
Tudo funcionando redondo agora.

Em qua., 15 de jan. de 2020 às 10:22, Gladiston Santana <
gladiston em vidy.com.br> escreveu:

> Esse SQL não funcionaria em lugar nenhum.
> Me admira dizer que funcionava antes.
> Você está atualizando  valunitdesc com o resultado de uma expressão, até
> que o update seja concluído não adiantará usar:
>   total=valunitdesc*qtde
> porque   valunitdesc ainda terá o seu valor anterior.
> Tente assim:
> update pedidos_det set
>   desconto=10,
>   valunitdesc=round(valunit-(valunit*desconto/100),2),
>   total= round(valunit-(valunit*desconto/100),2)*qtde
> where id_pedidos=123;
>
> Contudo se total é sempre o resultado de uma expressão matemática usando as
> colunas da mesma tabela, como sugestão crie ele como campo calculado, isto
> é, um campo virtual que não armazena um valor, mas *exibe* o resultado da
> expressão. Ex:
> CREATE TABLE  pedidos_det  (
> (...)
>     total float COMPUTED BY ( qtde * valunitdesc ) ,
> (...)
> caso total seja um campo com apenas 2 casas decimais use CAST:
>     total NUMERIC(18,2) COMPUTED BY (
>    CAST(( qtde * valunitdesc ) AS NUMERIC(18,2) )
>     ),
>
> INTE+
> Em ter., 14 de jan. de 2020 às 20:02, Fausto Cintra Junior <
> fcj001 em gmail.com>
> escreveu:
>
> > Pessoal,
> >
> > O SQL abaixo é para aplicar um desconto no valor dos itens de um pedido.
> > Funcionava no FB 2.1 mas no FB 3.0 se comporta de maneira diferente.
> >
> > update pedidos_det
> > set desconto=10,
> > valunitdesc=round(valunit-(valunit*desconto/100),2,.
> > total=valunitdesc*qtde
> > where id_pedidos=123;
> >
> > Executei pelo IBExpert.
> > Na primeira execução só a coluna desconto foi setada para 10;
> valunitdesc e
> > total permaneceram com os valores que já tinham.
> >
> > Pesquisei no Release Notes mas não consegui nenhuma informação.
> >
> > Alguém sabe como fazer isso?
> >
> > []'s
> > ______________________________________________
> > 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
> >
>
>
> --
> A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
> Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
> na Melhoria Continua.
>
> Em março de2018 migramos com sucesso para a nova versão da ISO 9001.
>
> Somos a única Empresa Brasileira de Engenharia de Laboratórios com
> certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
> Fabricação e Instalação de Laboratórios.
> ______________________________________________
> 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