Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Obtener decimales calculando porcentajes

Hola.
quiero hacer una consulta en la que se calcula el porcentaje de respuestas SI, NO y SIN respuesta en un cuestionario.

Utilizo los campos RESP_SI, RESP_NO y RESP_sin y el de total de respuestas TOT_PREGUNTAS. Los 4 campos son integer.

La sentencia que uso es:

Código SQL [-]
select a.RESP_SI, a.RESP_NO, a.RESP_sin, a.TOT_PREGUNTAS,
  (a.RESP_SI*100 / a.TOT_PREGUNTAS ) R_SI,
  (a.RESP_NO*100 / a.TOT_PREGUNTAS ) R_NO,
  (a.RESP_sin*100 / a.TOT_PREGUNTAS ) R_Sin
from cuestionario a

Todo funciona bien, excepto que los valores que devuelve de las operaciones son valores enteros, lo que produce normalmente que la suma de los 3 porcentajes sea 98 ó 99, raramente 100, porque redondea a la baja y, un 27,55 lo convierte en 27.

La pregunta es: ¿Hay alguna forma de obtener los resultados en la consulta con decimales?. ¿Cómo sería?.

Uso Firebird 2.0.

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 24-08-2010
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
Puedes probar con cast, transformando a tipo NUMERIC ó DECIMAL.
__________________
No hope, no dreams, no love, my only escape is Underground
Responder Con Cita
  #3  
Antiguo 24-08-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Smile

Hola Axel_Tech.

Gracias por tu propuesta. Ha funcionado parcialmente.

Si la operación es entre el valor de un campo y un número constante, funciona bien (utilicé NUMERIC, DECIMAL, FLOAT y REAL, aunque no da decimales con todos estos tipos).

Pero no funciona con decimales en el resultado (aunque sí funciona devolviendo valores enteros) si se realiza una operación (como dividir) entre los valores de 2 campos (que son integer).

De ayer a hoy he buscado otra vía para resolverlo (sin usar SQL) y, aunque me interesa a nivel de curiosidad y de aprender, he dejado de necesitarlo de forma inmediata.

Sin embargo, si alguien sabe como hacerlo (si se puede hacer, claro), creo que sería una buena aportación el que compartiera su solución en este hilo, para cualquier otra persona del foro que pueda necesitarlo.

Gracias.
Responder Con Cita
  #4  
Antiguo 26-08-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Smile

Hola de nuevo.

Hice una prueba usando campos tipo FLOAT y funcionó bien, dando decimales.

Así que debe ser suficiente con que los campos que entren en la operación que se realiza en el SELECT sean de tipo FLOAT.

Saludos.
Responder Con Cita
  #5  
Antiguo 26-08-2010
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Ojo que cuando muestres ese dato tre saldra con una gran cantidad de decimales, si quieres mostrar solo un decimal debes hacer lo siguiente en el SELECT

Select Round(promedio,1) as variableamostrar

Esto te permitira obtener del campo promedio que es de tipo FLOAT solo un decimal en la visualizacion.

Saludos

Alejandro Arancibia
CHILE
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #6  
Antiguo 26-08-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Wink

Gracias Alejandro.

Interesante ese ROUND, aunque no lo pude usar en Firebird 2.0.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con porcentajes ronalg Firebird e Interbase 4 04-10-2008 21:10:39
Porcentajes con SQL ¿? cartmanrules SQL 8 21-04-2008 22:58:57
Porcentajes en CSS no funcionan en explorer 6 Fate Internet 1 21-02-2008 00:19:40
Calculos de porcentajes¡¡¡ inexperto Varios 7 21-06-2005 10:14:32
Duda con los porcentajes en un label CRIS Varios 15 09-07-2003 23:18:09


La franja horaria es GMT +2. Ahora son las 12:07:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi