[firebase-br] Duvida com select

Gabriel Bonzanini gabriel.bonzanini em gmail.com
Qui Out 3 10:26:11 -03 2019


Tente desta forma:

select
     CAST(CAST(COALESCE(v.quant, 0) * COALESCE(v.precovenda, 0) AS
DECIMAL(18, 5)) - COALESCE(v.desconto, 0) + COALESCE(v.acrescimo, 0) AS
DECIMAL(18, 5)) AS totalproduto
from vendapdv2 v

Caso funcione, vá removendo os tratamentos para descobrir em qual campo
estava o problema.

Em qui, 3 de out de 2019 às 10:12, Marcelo - MK Softwares <
marcelo em mksoftwares.com.br> escreveu:

> Não sei se é o caso de verificar nulos, pois nesse caso é apenas um
> registro, apenas para testes, onde não tem nenhum dado como nulo.
>
> Pode me passar um exemplo de sua sugestão?
>
>
>
> Em 03/10/2019 09:57, Gabriel Bonzanini escreveu:
> > Hmmmmm já tentou fazer um COALESCE nos campos?
> >
> > Em qui, 3 de out de 2019 09:56, Marcelo - MK Softwares <
> > marcelo em mksoftwares.com.br> escreveu:
> >
> >> Alterei o calculo para:
> >> cast((v.quant * v.precovenda ) - v.desconto + v.acrescimo as
> decimal(18,5))
> >>
> >> mas o erro persiste. Também tentei fazer um cast em cada campo, mas sem
> >> resultado
> >>
> >> Em 03/10/2019 09:48, Gabriel Bonzanini escreveu:
> >>> Sugiro que seja feito um CAST na operação como um todo, para evitar que
> >>> sejam gerados decimais insignificantes (procure por epsilon).
> >>>
> >>> Em qui, 3 de out de 2019 09:36, Marcelo - MK Softwares <
> >>> marcelo em mksoftwares.com.br> escreveu:
> >>>
> >>>> Bom dia
> >>>>
> >>>> Estou criando uma sql que me retorna o total do produto, até ai tudo
> >>>> bem. Mas esta dando um erro na multiplicação. Vou expor a situação:
> >>>>
> >>>> Sql:
> >>>> select
> >>>>        /* outros campos que não vem ao caso*/
> >>>>        ((v.quant * v.precovenda ) - v.desconto + v.acrescimo)
> >> totalproduto
> >>>> from vendapdv2 v;
> >>>>
> >>>> Erro retornado:
> >>>> Unsuccessful execution caused by system error that does not preclude
> >>>> successful execution of subsequent statements.
> >>>> Integer overflow.  The result of an integer operation caused the most
> >>>> significant bit of the result to carry.
> >>>>
> >>>> Valores dos campos:
> >>>> v.quant decimal(18,5)= 123323333,000
> >>>> v.precovenda decimal(18,5) = 7,99
> >>>> v.desconto decimal(18,5) = 0
> >>>> v.acrescimo decimal(18,5) = 0
> >>>>
> >>>> Concordo que ninguém irá vender essa quantidade de mercadoria em um
> PDV
> >>>> de supermercado, mas é um teste de estresse, pra não ocorrer falhas.
> Mas
> >>>> a dúvida, por que me retorna um erro de integer overflow sendo que os
> >>>> campos são decimal?
> >>>> Se retirar a multiplicação da consulta, os valores são retornados sem
> >>>> erro algum!
> >>>>
> >>>> ______________________________________________
> >>>> 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
> ______________________________________________
> 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