Respuesta: Conteo de registros Creo que has dado datos erróneos, porque los primeros, los referidos al codigo 10 no están agrupados por código, mientras que los del codigo 20 sí.
Opino también que quizás la mejor solución es con programación, sobre todo si las preguntas tienen más de dos posibles respuestas. Además, yo me replantearía la estructura de la base, aunque si ya está hecha, te propongo estas consultas...
En cualquier caso estas consultas podrían ayudarte a entender la lógica:
si quieres datos separados por códigos:
SELECT codigo, SUM( IF( pregunta1 = 'e', 1, 0 ) ) Pregunta1e, SUM( IF( pregunta1 = 'b', 1, 0 ) ) Pregunta1b, SUM( IF( pregunta2 = 'e', 1, 0 ) ) Pregunta2e, SUM( IF( pregunta2 = 'b', 1, 0 ) ) Pregunta2b, SUM( IF( pregunta3 = 'e', 1, 0 ) ) Pregunta3e, SUM( IF( pregunta3 = 'b', 1, 0 ) ) Pregunta3b, SUM( IF( pregunta4 = 'e', 1, 0 ) ) Pregunta4e, SUM( IF( pregunta4 = 'b', 1, 0 ) ) Pregunta4b, SUM( IF( pregunta5 = 'e', 1, 0 ) ) Pregunta5e, SUM( IF( pregunta5 = 'b', 1, 0 ) ) Pregunta5b
FROM mitabla
GROUP BY codigo
Si son datos generales sin importar el código
SELECT SUM( IF( pregunta1 = 'e', 1, 0 ) ) Pregunta1e, SUM( IF( pregunta1 = 'b', 1, 0 ) ) Pregunta1b, SUM( IF( pregunta2 = 'e', 1, 0 ) ) Pregunta2e, SUM( IF( pregunta2 = 'b', 1, 0 ) ) Pregunta2b, SUM( IF( pregunta3 = 'e', 1, 0 ) ) Pregunta3e, SUM( IF( pregunta3 = 'b', 1, 0 ) ) Pregunta3b, SUM( IF( pregunta4 = 'e', 1, 0 ) ) Pregunta4e, SUM( IF( pregunta4 = 'b', 1, 0 ) ) Pregunta4b, SUM( IF( pregunta5 = 'e', 1, 0 ) ) Pregunta5e, SUM( IF( pregunta5 = 'b', 1, 0 ) ) Pregunta5b
FROM mitabla
Última edición por jurena; 01/09/2012 a las 15:14 |