Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

Nesse caso, qual a diferença entre 8 e 8.0?

select id_pedido, quantidadevendida, ceil(quantidadevendida/8) as Qtde_Caixa from TabelaPedidos
select id_pedido, quantidadevendida, ceil(quantidadevendida/8.0) as Qtde_Caixa from TabelaPedidos

retornam valores diferentes

1 resposta

Ei, Myrna! Tudo bem?

Ótima pergunta, obrigada por compartilhar!

A diferença está no tipo de divisão realizada que afeta o resultado da operação antes de aplicar o CEIL.

  • A divisão com 8 (número inteiro), quando é feita, o SQL faz a divisão inteira. Ou seja, o resultado é truncado, arredondado para baixo e ignorando a parte decimal. Por exemplo, temos a coluna QuantidadeVendida para realizar o cálculo por 8:

    • 5 / 8 = 0 (truncado)
    • 10 / 8 = 1 (truncado)
    • 15 / 8 = 1
    • 20 / 8 = 2
    • 25 / 8 = 3

Depois o CEIL é aplicado a esses números e como não tem parte decimal, o resultado permanece esse.

  • Quando fazemos a divisão por 8.0 (número decimal), o SQL faz ess divisão com ponto flutuante/decimais.

    • 5 / 8.0 = 0.625 → CEIL(0.625) = 1
    • 10 / 8.0 = 1.25 → CEIL(1.25) = 2
    • 15 / 8.0 = 1.875 → CEIL(1.875) = 2
    • 20 / 8.0 = 2.5 → CEIL(2.5) = 3
    • 25 / 8.0 = 3.125 → CEIL(3.125) = 4

Isso calcula corretamente a quantidade mínima de caixas, arredondando para cima qualquer fração.

Por isso resulta em diferentes resultados. Espero ter sanado sua dúvida, qualquer orientação que precisar nos estudos, compartilhe no fórum.

Bons estudos, Myrna!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!