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

Preguntas similare

Leer las respuestas

#6 Ing. Bernardo Cordoba
20/04/2004 - 14:29 | Informe spam
Maximilianao:
te comento que MYsql es muy compatible con SQL Server de microsoft, havber
son consultas basadas en sql..

Miramontes me dio una soluciòn optima al problema y gracias a todos por su
colaboracion.

Bernardo
"Maximiliano Damian Accotto" escribió
en el mensaje news:#
hola, no creo que lo que te hayan dicho funcione porque es para Microsoft
Sql Server, es mas este es el News de Microsoft Sql server y no el de


Mysql
;-), quizas tu consulta para que sea mejor respondida debas hacerla en el
news de Mysql :-)

Suerte


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Ing. Bernardo Cordoba" escribió en el mensaje
news:
> No necesito realizar la tabla, pues esta ya esta creada, yo estoy
utilizando
> MYSQL es para una intranet.
> El problema que tengo es que me cuenta todas las filas de una columna y


yo
> necesito saber es cuantos valores hay diferentes de cero en la columna
para
> promediar luego.
>
> Tengo que desechar los valores en cero, ya que las estadisticas se me


van
ha
> los extremos.
>
> "Isaías" escribió en el mensaje
> news:12c601c42641$24d0cd10$
>
> 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
>
>


Respuesta Responder a este mensaje
#7 Isaías
20/04/2004 - 15:51 | Informe spam
MySQL !!!, bien, pues he visto que algunos verbos de ANSI
SQL no funcionan en MySQL, por lo que NO creo que sea muy
compatible.

El hecho de CREAR la tabla, fue solo para realizar mis
pruebas.

Y apoyo la mocion, deberias ir a www.mysql.com.

Saludos.
Respuesta Responder a este mensaje
#8 Maximiliano D. A.
20/04/2004 - 16:39 | Informe spam
jeje, sabes que pasa amigo, es que los de Microsoft le damos soporte a los
otros gestores, lo unico que nos falta es que alguien nos pida soporte de
Oracle aca y carton lleno jeje.

pd: me pregunto nomas, no es para polemica no? pero si una persona que usa
mysql hace la consulta en SqlServer, realmente que tan barato le salio
Mysql? es solo para pensarlo nomas ;-)

Bye


Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Isaías" escribió en el mensaje
news:18b201c426de$85571b10$
MySQL !!!, bien, pues he visto que algunos verbos de ANSI
SQL no funcionan en MySQL, por lo que NO creo que sea muy
compatible.

El hecho de CREAR la tabla, fue solo para realizar mis
pruebas.

Y apoyo la mocion, deberias ir a www.mysql.com.

Saludos.





Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004
Respuesta Responder a este mensaje
#9 Miguel Egea
26/04/2004 - 15:28 | Informe spam
jeje, pues si es así yo también se algo de Oracle. :-)



Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
http://www.portalsql.com

(Quita el online si me tienes que mandar un correo)


"Maximiliano D. A." escribió en el
mensaje news:
jeje, sabes que pasa amigo, es que los de Microsoft le damos soporte a los
otros gestores, lo unico que nos falta es que alguien nos pida soporte de
Oracle aca y carton lleno jeje.

pd: me pregunto nomas, no es para polemica no? pero si una persona que usa
mysql hace la consulta en SqlServer, realmente que tan barato le salio
Mysql? es solo para pensarlo nomas ;-)

Bye


Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Isaías" escribió en el mensaje
news:18b201c426de$85571b10$
> MySQL !!!, bien, pues he visto que algunos verbos de ANSI
> SQL no funcionan en MySQL, por lo que NO creo que sea muy
> compatible.
>
> El hecho de CREAR la tabla, fue solo para realizar mis
> pruebas.
>
> Y apoyo la mocion, deberias ir a www.mysql.com.
>
> Saludos.



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida