Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/05/2009, 11:22
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: consulta query. Es posible?

a ver si esto, gulp,

Código sql:
Ver original
  1. SELECT t1.idForm, t1.respuesta, t1.res, t2.tot, CONCAT( ROUND( (
  2. (
  3. t1.res *100
  4. ) / t2.tot ) , 2 ) , '%'
  5. )porcentaje
  6. FROM (
  7.  
  8. SELECT idForm, respuesta, COUNT( respuesta ) res
  9. FROM `respuesta`
  10. GROUP BY idForm, respuesta
  11. ORDER BY idForm
  12. )t1
  13. INNER JOIN (
  14.  
  15. SELECT idForm, COUNT( * ) tot
  16. FROM respuesta
  17. GROUP BY idForm
  18. )t2 ON t1.idForm = t2.idForm

EDITO para decirte que yo, en tu caso, en lugar un campo de tipo ENUM, usaría una tabla con los valores y relacionada. Si me preguntas por qué, te diré que por al menos un par de razones, la primera de portabilidad (si quieres trabajar con otra base de datos), y segunda porque me ofrece la posibilidad de controlar mejor los datos, aunque sea algo menos rápida. Me explico: si quieres puntuar con 5 puntos muy buena, con 4 buena, con 3 regular, etc., tendrías que usar condicionales con enum y más sintaxis sql que si tuvieras una tabla en la que pondrías un campo puntuacion. Si un día quisieras cambiar la puntuación, no tendrías que cambiar la sintaxis sql, sino simplemente el valor en la tabla. Es verdad que, a diferencia de ahora, tendrás que relacionar todo con esa otra tabla, aunque eso no resultará nada difícil.

Última edición por jurena; 10/05/2009 a las 04:28