Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > SQL
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 24/08/2010
rrf rrf is offline
Miembro
 
Join Date: Aug 2003
Location: S/C Tenerife, España
Posts: 454
Poder: 24
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.
Reply With Quote
  #2  
Old 24/08/2010
Axel_Tech's Avatar
Axel_Tech Axel_Tech is offline
Miembro
 
Join Date: Nov 2008
Location: lugar en que está ubicado algo.
Posts: 85
Poder: 18
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
Reply With Quote
  #3  
Old 24/08/2010
rrf rrf is offline
Miembro
 
Join Date: Aug 2003
Location: S/C Tenerife, España
Posts: 454
Poder: 24
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.
Reply With Quote
  #4  
Old 26/08/2010
rrf rrf is offline
Miembro
 
Join Date: Aug 2003
Location: S/C Tenerife, España
Posts: 454
Poder: 24
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.
Reply With Quote
  #5  
Old 26/08/2010
Alejandro73 Alejandro73 is offline
Miembro
 
Join Date: Apr 2006
Location: Valparaiso - CHILE
Posts: 139
Poder: 21
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 .......
Reply With Quote
  #6  
Old 26/08/2010
rrf rrf is offline
Miembro
 
Join Date: Aug 2003
Location: S/C Tenerife, España
Posts: 454
Poder: 24
rrf Va por buen camino
Wink

Gracias Alejandro.

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

Saludos.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Problemas con porcentajes ronalg Firebird e Interbase 4 04/10/2008 21:10
Porcentajes con SQL ¿? cartmanrules SQL 8 21/04/2008 22:58
Porcentajes en CSS no funcionan en explorer 6 Fate Internet 1 21/02/2008 00:19
Calculos de porcentajes¡¡¡ inexperto Varios 7 21/06/2005 10:14
Duda con los porcentajes en un label CRIS Varios 15 09/07/2003 23:18


All times are GMT +2. The time now is 01:52.


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