[firebase-br] Duvida com select

Gabriel Bonzanini gabriel.bonzanini em gmail.com
Qui Out 3 09:48:17 -03 2019


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
>



Mais detalhes sobre a lista de discussão lista