[C con Clase] Doble condición en la misma consulta MySQL

Salvador Pozo salvapozo en gmail.com
Vie Abr 10 12:26:42 CEST 2009


Hola:

Lo que quieres hacer se puede conseguir mediante una UNION.

En tu caso, la consulta podrá quedar así:

SELECT Curso,Nivel,Clase,Asignatura AS ASIGNATURA,Evaluacion AS EVAL,
count(Nota) AS cuenta,'Aprobados' FROM datos WHERE Nota>=5 AND anno="2008"
GROUP BY Curso,Nivel,Clase,ASIGNATURA,EVAL UNION
SELECT Curso,Nivel,Clase,Asignatura AS ASIGNATURA,Evaluacion AS EVAL,
count(Nota) AS cuenta,'Suspensos' FROM datos WHERE nota<5 AND anno="2008"
GROUP BY Curso,Nivel,Clase,ASIGNATURA,EVAL

Hay que tener cuidado de que todas las selecciones de una unión tengan
el mismo número y tipo de columnas, por eso he llamado a los campos
"COUNT" cuenta, y he añadido una columna más, con valor constante
'Aprobados' y 'Suspensos'.


> la pregunta es: ¿Cómo puedo unir las dos consultas? ¿cómo puedo tener un
> campo donde me cuente los aprobados y a su lado otro donde me cuente los
> suspensos? Muchas gracias.

Sé que no es exactamente lo que pides, pero espero que te sirva.

También se puede conseguir lo que quieres, pero de momento sólo se me
ocurre una forma: construyendo una tabla temporal en memoria y
llanándola a partir de dos consultas como las que planteas en tu
mensaje.

Hasta pronto.
-- 
Salvador Pozo Coronado
http://www.conclase.net
mailto:salvapozo en gmail.com




Más información sobre la lista de distribución Cconclase