SQL - Consulta SQL Count de varios campos

 
Vista:

Consulta SQL Count de varios campos

Publicado por Gonzalo (3 intervenciones) el 24/03/2012 17:17:00
Hola, estoy tratando de elaborar una consulta SQL que me genere como resultado la cantidad de registros de 4 campos de la misma tabla de acuerdo a una condición, aclaro requiero cuatro resultados pues los totales serán diferentes, adicionalmente no puedo utilizar el comando UNION. Para mas claridad doy una descripcion de la tabla:

TABLA1
campo1 contiene valores de SI o NO
campo2 contiene valores de SI o NO
campo3 contiene valores de SI o NO
campo4 contiene valores de SI o NO

La idea es tener un resultado asi (cantidad de registros con NO):

CAMPO CANTIDAD
campo1 5
campo2 4
campo3 7
campo4 1

O también el resultado puede ser asi:

campo1 campo2 campo3 campo4
5 4 7 1

Agradezco la colaboración que me puedan dar.
Mil bendiciones para todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL Count de varios campos

Publicado por leonardo_josue (1173 intervenciones) el 26/03/2012 23:22:20
Hola Gonzalo:

No nos dices con qué motor de BD estás trabajando, pero te pongo cómo se haría con MySQL... es SQL estándar, así es que debería funcionar para cualquier motor de BD actual,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mysql> SELECT * FROM tabla;
+--------+--------+--------+--------+
| campo1 | campo2 | campo3 | campo4 |
+--------+--------+--------+--------+
| SI     | SI     | SI     | SI     |
| SI     | NO     | SI     | NO     |
| SI     | SI     | NO     | NO     |
| SI     | NO     | SI     | NO     |
| SI     | NO     | NO     | NO     |
+--------+--------+--------+--------+
5 rows in set (0.00 sec)
 
mysql> SELECT
    -> SUM(CASE WHEN campo1 = 'NO' THEN 1 ELSE 0 END) campo1,
    -> SUM(CASE WHEN campo2 = 'NO' THEN 1 ELSE 0 END) campo2,
    -> SUM(CASE WHEN campo3 = 'NO' THEN 1 ELSE 0 END) campo3,
    -> SUM(CASE WHEN campo4 = 'NO' THEN 1 ELSE 0 END) campo4
    -> FROM tabla;
+--------+--------+--------+--------+
| campo1 | campo2 | campo3 | campo4 |
+--------+--------+--------+--------+
|      0 |      3 |      2 |      4 |
+--------+--------+--------+--------+
1 row in set (0.00 sec)


En tu post mencionas que no puedes utilizar UNION (sería bueno que nos dijeras el porqué) pero igual dejo la consulta de cómo podrías hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mysql> SELECT 'campo1', COUNT(campo1) FROM tabla WHERE campo1 = 'NO'
    -> UNION
    -> SELECT 'campo2', COUNT(campo2) FROM tabla WHERE campo2 = 'NO'
    -> UNION
    -> SELECT 'campo3', COUNT(campo3) FROM tabla WHERE campo3 = 'NO'
    -> UNION
    -> SELECT 'campo4', COUNT(campo4) FROM tabla WHERE campo4 = 'NO';
+--------+---------------+
| campo1 | COUNT(campo1) |
+--------+---------------+
| campo1 |             0 |
| campo2 |             3 |
| campo3 |             2 |
| campo4 |             4 |
+--------+---------------+
4 rows in set (0.00 sec)


Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta SQL Count de varios campos

Publicado por Gonzalo (3 intervenciones) el 28/03/2012 04:48:35
Gracias Leo, estoy trabajando con access 97 para luego enlazar con excel debido a requerimientos de la empresa donde trabajo y me parecio lo mas viable y sencillo.

No puedo utilizar UNION ya que al tratar de enlazar esta consulta de access en excel no me da la opcion de jalarla.

Gracias por tu respuesta una vez la aplique te cuento los resultados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta SQL Count de varios campos

Publicado por Gonzalo (3 intervenciones) el 28/03/2012 05:04:19
Hola de nuevo, trate de ejecutar la consulta pero acces me genera el error Error de sintaxis (falta el operador) es como si no reconociera el comando WHEN.

hay alguna otra alternativa utilizando subconsultas o algo parecido

Gracias por la ayuda,
Saludos
Gonzalo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta SQL Count de varios campos

Publicado por dixonzamora (1 intervención) el 06/09/2013 19:31:58
Saludos execelente sql que me ayudo a solventar una consulta, quiero preguntar si todos esos resultados los puedo totalizar en el mismo sql usando As o de que manera se podria hacer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar