Problema con consulta haciendo case.... desde Colombia

19/04/2004 - 20:42 por Ing. Bernardo Cordoba | Informe spam
HOla como estan tengo el siguiente problema, ya que no soy un expero en
querys SQL.

tengo la siguiente consulta:

Resultado SQL
Servidor: localhost
Base de datos : prev_personal
Tiempo de generación: 19-04-2004 a las 11:10:58
Generado por: phpMyAdmin 2.5.3-rc2
consulta SQL: SELECT * FROM `encuesta1` LIMIT 0, 30;

p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12
0 0 0 0 0 4 0 0 0 0 4 0
4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4
2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 4 4 4 4 3 4 4
0 0 0 0 0 4 0 0 0 0 4 0
0 0 0 0 0 4 4 4 4 4 4 4
0 0 0 0 0 4 0 0 0 0 0 0
3 3 3 3 3 3 3 3 3 3 3 3

son doce columnas y en cada columna estan los resultados, necesito hacer un
query donde me sume y cuenta las columnas, pero donde hayan valores nulos no
las haga.
por ejemplo en la columna P1 me deberia arrojar:

sum(p1)
count(p1)=6

pero en la columna P6 deberia ser asi:

sum (p6)6
count(p6)

lo que sucede es que tengo una encuesta donde tengo que totalizar los
promedios agrupados por empleado pero sin tener en cuenta los valores nulos
o en ceros.

Gracias

Bernardo
 

Leer las respuestas

#1 Isaías
19/04/2004 - 21:04 | Informe spam
Hola Bernardo

¿Que motor de base de datos utilizas?


CREATE TABLE COLUMNAS(
P1 tinyint,
P2 tinyint,
P3 tinyint,
P4 tinyint,
P5 tinyint,
P6 tinyint,
P7 tinyint,
P8 tinyint,
P9 tinyint,
P10 tinyint,
P11 tinyint,
P12 tinyint)
INSERT INTO COLUMNAS VALUES(


INSERT INTO COLUMNAS VALUES(0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
4, 0)
INSERT INTO COLUMNAS VALUES(4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4)
INSERT INTO COLUMNAS VALUES(4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4)
INSERT INTO COLUMNAS VALUES(4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4)
INSERT INTO COLUMNAS VALUES(2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2)
INSERT INTO COLUMNAS VALUES(3, 3, 3, 3, 3, 4, 4, 4, 4, 3,
4, 4)
INSERT INTO COLUMNAS VALUES(0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
4, 0)
INSERT INTO COLUMNAS VALUES(0, 0, 0, 0, 0, 4, 4, 4, 4, 4,
4, 4)
INSERT INTO COLUMNAS VALUES(0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
0, 0)
INSERT INTO COLUMNAS VALUES(3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3)

SELECT
COLUMNASP1 = SUM(CASE WHEN P1 = 0 THEN 0 ELSE 1 END), SUM
(P1) AS TOTALP1,
COLUMNASP2 = SUM(CASE WHEN P2 = 0 THEN 0 ELSE 1 END), SUM
(P2) AS TOTALP2,
COLUMNASP3 = SUM(CASE WHEN P3 = 0 THEN 0 ELSE 1 END), SUM
(P3) AS TOTALP3,
COLUMNASP4 = SUM(CASE WHEN P4 = 0 THEN 0 ELSE 1 END), SUM
(P4) AS TOTALP4,
COLUMNASP5 = SUM(CASE WHEN P5 = 0 THEN 0 ELSE 1 END), SUM
(P5) AS TOTALP5,
COLUMNASP6 = SUM(CASE WHEN P6 = 0 THEN 0 ELSE 1 END), SUM
(P6) AS TOTALP6,
COLUMNASP7 = SUM(CASE WHEN P7 = 0 THEN 0 ELSE 1 END), SUM
(P7) AS TOTALP7,
COLUMNASP8 = SUM(CASE WHEN P8 = 0 THEN 0 ELSE 1 END), SUM
(P8) AS TOTALP8,
COLUMNASP9 = SUM(CASE WHEN P9 = 0 THEN 0 ELSE 1 END), SUM
(P9) AS TOTALP9,
COLUMNASP10 = SUM(CASE WHEN P10 = 0 THEN 0 ELSE 1 END), SUM
(P10) AS TOTALP10,
COLUMNASP11 = SUM(CASE WHEN P11 = 0 THEN 0 ELSE 1 END), SUM
(P11) AS TOTALP11,
COLUMNASP12 = SUM(CASE WHEN P12 = 0 THEN 0 ELSE 1 END), SUM
(P12) AS TOTALP12
FROM COLUMNAS

Preguntas similares