Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta sum() ajustada a dos decimales

Estas en el tema de Consulta sum() ajustada a dos decimales en el foro de Bases de Datos General en Foros del Web. Hola soy nuevo en el foro e estado viendo las respuesta y doy la enhorabuena a todos por el mismo. Tengo un problema y no ...
  #1 (permalink)  
Antiguo 17/04/2010, 05:13
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
De acuerdo Consulta sum() ajustada a dos decimales

Hola soy nuevo en el foro e estado viendo las respuesta y doy la enhorabuena a todos por el mismo.
Tengo un problema y no se como resolverlo. Intentare explicarme:
Quiero realizar un select de una bbdd con sum() pero que la operacion sea con dos decimales.
yo realizo 'Select sum(unidad*producto) as Total from Tb'
pero el resultado de total de los campos es por ejemplo
6.46 * 2.73 = 17,6358
7.24 * 2.73 = 19,7652
----------
37.401 ..... Redondeando son 37.40

si yo realizo esta operacion con un do while a dos decimales seria
6.46 * 2.73 = 17,64
7.24 * 2.73 = 19,77
----------
37.41 ..... Redondeado son 37.41

yo quiero que el resultado de la operacion con el do while sea directamente desde el sql
Me podeis ayudar
Un saludo
Felix

Última edición por bntinfo; 17/04/2010 a las 05:24
  #2 (permalink)  
Antiguo 17/04/2010, 06:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta sum() ajustada a dos decimales

No se soluciona con whiles, ni WHEREs.
La solución es usar una función matemática: ROUND().
Código MySQL:
Ver original
  1. SELECT ROUND(SUM(campo), 2) suma
  2. FROM tabla;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/04/2010, 09:22
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Consulta sum() ajustada a dos decimales

Gracias gnzsoloyo
Efectivamente Round efectua esa operacion, pero sigue dandome el mismo valor que sin el.
  #4 (permalink)  
Antiguo 17/04/2010, 10:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta sum() ajustada a dos decimales

Entonces usa TRUNCATE(valor, decimales), en lugar de ROUND().
Eso si trabajas con MySQL. Caso contrario, verifica qué función en el manual debes usar en tu DBMS para eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/04/2010, 04:21
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Consulta sum() ajustada a dos decimales

Gracias gnzsoloyo por tu tiempo
un saludo

Etiquetas: dos, sum
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:39.