Arredondamento SQL

24/08/2017

0

Olá,
Em consulta SQL
Deparando com uma situação em que o retorno é fracionado, exemplo:
0,1687
0,1219
1,6782
1,0102
2,1349
2,7910

Necessitamos de uma maneira que o retorno seja para o próximo número inteiro, quando houver casa decimal maior que 0,0001.
retorno do exemplo acima seria:
1
1
2
2
3
3

Att.
Tiago

Tiago

Responder

Post mais votado

25/08/2017

Encontrei a Solução! Utilizando a função CEIL() resolveu!

No link: https://stackoverflow.com/questions/12361220/how-to-round-down-to-nearest-integer-in-mysql

Use FLOOR(), if you want to round your decimal to the lower integer. Examples:

FLOOR(1.9) => 1
FLOOR(1.1) => 1

Use ROUND(), if you want to round your decimal to the nearest integer. Examples:

ROUND(1.9) => 2
ROUND(1.1) => 1

Use CEIL(), if you want to round your decimal to the upper integer. Examples:

CEIL(1.9) => 2
CEIL(1.1) => 2


Obrigado!

Tiago

Tiago
Responder

Mais Posts

24/08/2017

Luiz Santos

Bom dia Tiago.
Veja se te atende.


SELECT CAST(0.1687 AS INT) + 1 UNION ALL
SELECT CAST(0.1219 AS INT) + 1 UNION ALL
SELECT CAST(1.6782 AS INT) + 1 UNION ALL
SELECT CAST(1.0102 AS INT) + 1 UNION ALL
SELECT CAST(2.1349 AS INT) + 1 UNION ALL
SELECT CAST(2.7910 AS INT) + 1



Grande abraço
Responder

24/08/2017

Tiago

Bom dia Tiago.
Veja se te atende.


SELECT CAST(0.1687 AS INT) + 1 UNION ALL
SELECT CAST(0.1219 AS INT) + 1 UNION ALL
SELECT CAST(1.6782 AS INT) + 1 UNION ALL
SELECT CAST(1.0102 AS INT) + 1 UNION ALL
SELECT CAST(2.1349 AS INT) + 1 UNION ALL
SELECT CAST(2.7910 AS INT) + 1



Grande abraço


Minha consulta é realizada através do código:
Estou utilizando o ROUND para arredondamento, mas dependendo, arredonda para mais ou menos.
Preciso que seja sempre para mais.

SELECT
n.empresa,
p.codigo_interno,
p.descricao,
ROUND(SUM(n.quantidade) / DATEDIFF('2017-08-16 23:59:59','2017-07-01 00:00:00') * 5,0) as quantidade
FROM
mov_itens_nf n
INNER JOIN
cad_produto p
ON n.codigo_produto = p.codigo
WHERE
n.Empresa = 1 AND n.Filial = 1
AND n.Data_Operacao >= '2017-07-01 00:00:00'
AND n.Data_Operacao <= '2017-08-16 23:59:59'
AND n.CFOP > 5000
AND n.Cancelado <> 'S'
AND p.inativo = 'N'
GROUP BY n.codigo_produto;
Responder

24/08/2017

Fabiano Carvalho

Acredito que voce irá ter que criar uma função para arredondar sempre pra mais.
Caso tenha dúvidas retorne, que é uma explicação um pouco extensa.
Responder

24/08/2017

Tiago

Acredito que voce irá ter que criar uma função para arredondar sempre pra mais.
Caso tenha dúvidas retorne, que é uma explicação um pouco extensa.


Olá, tenho dúvidas quanto a criação da função que citou.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar