Arredondamento SQL
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.
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
Curtidas 0
Melhor post
Tiago
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!
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!
GOSTEI 1
Mais Respostas
Luiz Santos
24/08/2017
Bom dia Tiago.
Veja se te atende.
Grande abraço
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
GOSTEI 0
Tiago
24/08/2017
Bom dia Tiago.
Veja se te atende.
Grande abraço
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;
GOSTEI 0
Fabiano Carvalho
24/08/2017
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.
Caso tenha dúvidas retorne, que é uma explicação um pouco extensa.
GOSTEI 0
Tiago
24/08/2017
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.
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.
GOSTEI 0