Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

COUNT varios campos de una misma tabla

Estas en el tema de COUNT varios campos de una misma tabla en el foro de Mysql en Foros del Web. Hola a todos mi consulta es la siguiente: como contar varios campos de una misma tabla, tengo una tabla que tiene los siguientes campos, opcion1,opcion2,opcion3,opcion4,opcion5,opcion6,op ...
  #1 (permalink)  
Antiguo 30/04/2010, 18:38
Avatar de Bizo21  
Fecha de Ingreso: abril-2004
Ubicación: Valdivia
Mensajes: 93
Antigüedad: 20 años, 2 meses
Puntos: 1
COUNT varios campos de una misma tabla

Hola a todos mi consulta es la siguiente:

como contar varios campos de una misma tabla, tengo una tabla que tiene los siguientes campos, opcion1,opcion2,opcion3,opcion4,opcion5,opcion6,op cion7, etc hasta 41 donde se inserta las siguientes respuestas b=bueno,m=malo, N/A=no aplica al hacer esta consulta para que me cuente solo los que indican malo :

SELECT count(*)-1 FROM `chequeo` where emsefor='empresa' and op1='m' or op2='m' or op3='m' or op4='m' or op5='m' or op6='m' or op7='m' or op8='m'

pero solo me cuenta hasta una cierta cantidad y las demas no las toma.

ahora indico select que me funciono

select(select((SELECT count(*)-1 FROM `chequeo` where emsefor='osorno' and op1='m' or op2='m')+
(SELECT count(*) FROM `chequeo` where emsefor='osorno' and op3='m' or op4='m')+
(SELECT count(*) FROM `chequeo` where emsefor='osorno' and op5='m' or op6='m')+
(SELECT count(*) FROM `chequeo` where emsefor='osorno' and op7='m' or op8='m'))as contar

¿como se puede hacer de una forma mas simple?

tambien necesito que me muestre en la misma consulta y los cuente los que esten llenados por un b, para poder pasarlo a un grafico que estoy realizando ya que tengo que realizar dos while para que me muestre lo que cuenta.

gracias.
  #2 (permalink)  
Antiguo 01/05/2010, 02:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 2 meses
Puntos: 300
Respuesta: COUNT varios campos de una misma tabla

Te pongo sólo hasta op4. Prueba y nos dices si es lo que quieres
SELECT SUM(IF(op1='m',1,0))mop1, SUM(IF(op1='b',1,0))bop1, SUM(IF(op2='m',1,0))mop2, SUM(IF(op2='b',1,0))bop2, SUM(IF(op3='m',1,0))mop3, SUM(IF(op3='b',1,0))bop3, SUM(IF(op4='m',1,0))mop4, SUM(IF(op4='b',1,0))bop4 FROM chequeo WHERE emsefor='osorno' GROUP BY emsefor
  #3 (permalink)  
Antiguo 01/05/2010, 15:36
Avatar de Bizo21  
Fecha de Ingreso: abril-2004
Ubicación: Valdivia
Mensajes: 93
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: COUNT varios campos de una misma tabla

como haces para que te aparesca con todas las SUM algo asi:

buenos 10, malos 20 de la empresa Osorno.
  #4 (permalink)  
Antiguo 01/05/2010, 17:38
Avatar de Bizo21  
Fecha de Ingreso: abril-2004
Ubicación: Valdivia
Mensajes: 93
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: COUNT varios campos de una misma tabla

Gracias Jurena y a todos por ayudarme, ya hice el query que necesitaba para que me aparesca los resultados asi:

buenos 10
malos 5
les dejo el query:


SELECT (SUM(IF(op1='m',1,0))+ SUM(IF(op2='m',1,0))+ SUM(IF(op3='m',1,0))+ SUM(IF(op4='m',1,0)))as malos ,(SUM(IF(op2='b',1,0))+ SUM(IF(op3='b',1,0)) + SUM(IF(op4='b',1,0))+SUM(IF(op1='b',1,0)))as buenos FROM chequeo WHERE emsefor='osorno' GROUP BY emsefor

Etiquetas: campos, count, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:16.