2
respostas

Comissão também igual a 10%

Aparentemente quando usamos o código SELECT * FROM tabela_vendedores WHERE PERCENTUAL_COMISSAO>0.10; aparece também casos em que o PERCENTUAL_COMISSAO = 0.10 , como no caso mostrado abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

É perceptível na tabela que o terceiro vendedor, cujo percentual de comissão é 0.10 está presente na tabela. Portanto fiquei com a seguinte dúvida: Teria algum filtro no SQL que efetivamente pegue somente os vendedores com a comissão maior do que 0.10?

2 respostas

Olá, Carlos

O filtro que você deveria usar para extrair PERCENTUAL_COMISSAO > 0.1 está correto.

O problema provavelmente tem relação com a o tipo do dado dessa coluna, sempre que fazemos alguma consulta com esse tipo de comparação de valores, o SQL vai tentar converter os dois valores comparados para o mesmo tipo de dado e só ai fazer a comparação.

Recomendo arredondar o valor dessa coluna e ai fazer a comparação.

ROUND(PERCENTUAL_COMISSAO) > 0.1

Caso esse valor indesejado ainda esteja aparecendo, use o ROUND(PERCENTUAL_COMISSAO) no SELECT para visualizar como o arredondamento está sendo feito.

O problema Caio é que mesmo que ambos os valores (da coluna e do 0.1) sejam do mesmo tipo (float), a comparação não é feita corretamente, ou seja, a tabela fica tanto com os valores iguais a 0.1 quanto maiores, sendo que era para ficar somente os maiores do que 0.1 nessa tabela .