Criterios de filtrado en consultas de agrupación y totales, cláusula HAVING

Cuando se trata de consultas de agrupación y totales, la forma de utilizar criterios de ordenación es algo distinta de lo que has visto hasta ahora. La diferencia se encuentra en que debes utilizar una nueva cláusula: HAVING (figura 6.17). Por ejemplo, si sólo deseas contar los alumnos de 1A, la consulta quedaría del siguiente modo:

SELECT Cursos.Curso, COUNT (Alumnos.Expediente)
FROM Alumnos, Cursos
WHERE Alumnos.Grupo=Cursos.IdCurso
GROUP BY Cursos.Curso HAVING Cursos.Curso = '1A'

 

Figura 6.17

 

Si lo deseas puedes complicar los criterios añadiendo nuevos filtrados mediante los operadores AND y OR. La siguiente consulta es idéntica a la anterior pero obtiene el total de alumnos de los grupos 1A y 1B.

SELECT Cursos.Curso, COUNT(Alumnos.Expediente)
FROM Alumnos, Cursos
WHERE Alumnos.Grupo=Cursos.IdCurso
GROUP BY Cursos.Curso HAVING Cursos.Curso = '1A'
OR Cursos.Curso = '1B'

Icono IDevice

Nota

Es posible que llegados a este punto te estés planteando, por qué debes complicarte tanto la vida con SQL si lo puedes hacer de forma mucho más sencilla con el diseñador de consultas. La explicación la encuentras por una parte en las limitaciones que aún presenta OpenOffice Base y que únicamente se pueden suplir mediante sentencias SQL. También es necesario tener ciertas nociones de SQL ya que al tratarse de un lenguaje universal y estándar puedes utilizar las consultas en cualquier otra base de datos.