Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/04/2013, 14:31
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Es posible colocar 0 en una consulta si falta un valor?

Hola de nuevo danikene:

Efectivamente tengo restringido el acceso a sitios para subir imágenes, es por eso que no puedo visualizar el link .

No estoy seguro de si te entendí correctamente, pero creo que lo que pretendes es agregar los registros de las respuestas faltantes para cada pregunta, colocando un cero como total, si esto es correcto podrías hacerlo con el concepto de producto cartesiano, más o menos así:

Por un lado, debes crear una tabla que contenga todas las respuestas posibles (1, 2, 3, 4)

Código MySQL:
Ver original
  1. mysql> CREATE TABLE respuestas (respuesta INT);
  2. Query OK, 0 rows affected (0.08 sec)
  3.  
  4. mysql> INSERT INTO respuestas VALUES (1), (2), (3), (4);
  5. Query OK, 4 rows affected (0.05 sec)
  6. Records: 4  Duplicates: 0  Warnings: 0

Ahora, voy a hacer una subconsulta para obtener todas los grupos y subgrupos distintos, así:

Código MySQL:
Ver original
  1. mysql> SELECT DISTINCT grup, sub FROM survey;
  2. +-----------------------+-----------------------+
  3. | grup                  | sub                   |
  4. +-----------------------+-----------------------+
  5. | Efectividad           | Enfoque               |
  6. | Efectividad           | Responsabilidad       |
  7. | Efectividad           | Involucramiento       |
  8. | Efectividad           | Consecuencia          |
  9. | Confianza             | Capaz                 |
  10. | Confianza             | Creible               |
  11. | Confianza             | Conectado             |
  12. | Confianza             | Consistente           |
  13. | Confianza             | Satisfaccion          |
  14. | Modelaje              |                       |
  15. | Adecuacion del Estilo | Persona a Persona     |
  16. | Adecuacion del Estilo | Equipo                |
  17. | Autoliderazgo         | Autonomia             |
  18. | Autoliderazgo         | Fuentes de Influencia |
  19. +-----------------------+-----------------------+
  20. 14 rows in set (0.00 sec)

Haciendo un producto cartesiano entre estas dos tablas obtendrías TODAS LAS COMBINACIONES QUE NECESITAS, ES DECIR, CADA GRUPO Y SUBGRUPO CON SUS 4 RESPUESTAS. Con esta tabla resultante puedes hacer un LEFT JOIN sobre tu tabla de respuestas original, de tal manera que sólo aquellas preguntas que se respondieron tendrán un total, para el resto, simplemente utilizas función IFNULL para asignarle un 0. Sería más o menos así:

Código MySQL:
Ver original
  1. mysql> SELECT R.respuesta, T1.grup, T1.sub,
  2.     -> IFNULL(T2.totalRespuesta, 0) totalRespuesta
  3.     -> FROM respuestas R
  4.     -> INNER JOIN (SELECT DISTINCT grup, sub FROM survey) T1
  5.     -> LEFT JOIN survey T2 ON T1.grup = T2.grup AND
  6.     ->                        T1.sub = T2.sub AND
  7.     ->                        R.respuesta = T2.respuesta;
  8. +-----------+-----------------------+-----------------------+----------------+
  9. | respuesta | grup                  | sub                   | totalRespuesta |
  10. +-----------+-----------------------+-----------------------+----------------+
  11. |         1 | Efectividad           | Enfoque               |              8 |
  12. |         2 | Efectividad           | Enfoque               |              6 |
  13. |         3 | Efectividad           | Enfoque               |              2 |
  14. |         4 | Efectividad           | Enfoque               |              0 |
  15. |         1 | Efectividad           | Responsabilidad       |              8 |
  16. |         2 | Efectividad           | Responsabilidad       |              7 |
  17. |         3 | Efectividad           | Responsabilidad       |              0 |
  18. |         4 | Efectividad           | Responsabilidad       |              1 |
  19. |         1 | Efectividad           | Involucramiento       |              5 |
  20. |         2 | Efectividad           | Involucramiento       |             10 |
  21. |         3 | Efectividad           | Involucramiento       |              0 |
  22. |         4 | Efectividad           | Involucramiento       |              1 |
  23. |         1 | Efectividad           | Consecuencia          |              4 |
  24. |         2 | Efectividad           | Consecuencia          |             12 |
  25. |         3 | Efectividad           | Consecuencia          |              0 |
  26. |         4 | Efectividad           | Consecuencia          |              0 |
  27. |         1 | Confianza             | Capaz                 |              2 |
  28. |         2 | Confianza             | Capaz                 |              5 |
  29. |         3 | Confianza             | Capaz                 |              1 |
  30. |         4 | Confianza             | Capaz                 |              0 |
  31. |         1 | Confianza             | Creible               |              1 |
  32. |         2 | Confianza             | Creible               |              2 |
  33. |         3 | Confianza             | Creible               |              0 |
  34. |         4 | Confianza             | Creible               |              1 |
  35. |         1 | Confianza             | Conectado             |              9 |
  36. |         2 | Confianza             | Conectado             |             11 |
  37. |         3 | Confianza             | Conectado             |              0 |
  38. |         4 | Confianza             | Conectado             |              0 |
  39. |         1 | Confianza             | Consistente           |              2 |
  40. |         2 | Confianza             | Consistente           |              5 |
  41. |         3 | Confianza             | Consistente           |              0 |
  42. |         4 | Confianza             | Consistente           |              1 |
  43. |         1 | Confianza             | Satisfaccion          |              4 |
  44. |         2 | Confianza             | Satisfaccion          |              8 |
  45. |         3 | Confianza             | Satisfaccion          |              0 |
  46. |         4 | Confianza             | Satisfaccion          |              0 |
  47. |         1 | Modelaje              |                       |             25 |
  48. |         2 | Modelaje              |                       |             22 |
  49. |         3 | Modelaje              |                       |              0 |
  50. |         4 | Modelaje              |                       |              5 |
  51. |         1 | Adecuacion del Estilo | Persona a Persona     |             10 |
  52. |         2 | Adecuacion del Estilo | Persona a Persona     |              5 |
  53. |         3 | Adecuacion del Estilo | Persona a Persona     |              0 |
  54. |         4 | Adecuacion del Estilo | Persona a Persona     |              1 |
  55. |         1 | Adecuacion del Estilo | Equipo                |             16 |
  56. |         2 | Adecuacion del Estilo | Equipo                |              9 |
  57. |         3 | Adecuacion del Estilo | Equipo                |              1 |
  58. |         4 | Adecuacion del Estilo | Equipo                |              2 |
  59. |         1 | Autoliderazgo         | Autonomia             |             15 |
  60. |         2 | Autoliderazgo         | Autonomia             |             10 |
  61. |         3 | Autoliderazgo         | Autonomia             |              1 |
  62. |         4 | Autoliderazgo         | Autonomia             |              2 |
  63. |         1 | Autoliderazgo         | Fuentes de Influencia |             16 |
  64. |         2 | Autoliderazgo         | Fuentes de Influencia |              7 |
  65. |         3 | Autoliderazgo         | Fuentes de Influencia |              0 |
  66. |         4 | Autoliderazgo         | Fuentes de Influencia |              1 |
  67. +-----------+-----------------------+-----------------------+----------------+
  68. 56 rows in set (0.01 sec)

No estoy seguro de si esto es exactamente lo que estás buscando, si no es así dinos qué es lo que estás esperando como salida.

Saludos
Leo.