La cláusula HAVING en Access especifica qué registros agrupados se muestran en una instrucción SELECT con una cláusula GROUP BY. Después de que GROUP BY combine los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING.
Sintaxis
SELECT listadecampos
FROM tabla WHERE criteriosdeselección GROUP BY listadecamposdegrupo [HAVING criteriosdegrupo]Una instrucción SELECT que contiene una cláusula HAVING consta de las siguientes partes:
Parte |
Descripción |
listadecampos |
Nombre del campo o campos que se van a recuperar junto con cualquier alias de nombre de campo, funciones de agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones de la instrucción SELECT. |
tabla |
Nombre de la tabla de la cual se recuperan los registros. |
criteriosdeselección |
Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de datos Microsoft Access agrupa los valores después de aplicar las condiciones WHERE a los registros. |
listadecamposdegrupo |
Nombres de hasta un máximo de 10 campos utilizados para agrupar registros. El orden de los nombres de campo de listadecamposdegrupo determina los niveles de agrupación desde el nivel más alto al nivel más bajo. |
criteriosdegrupo |
Expresión que determina los registros agrupados que se muestran. |
Comentarios
HAVING es opcional.
HAVING es similar a WHERE, que determina los registros que se seleccionan. Después de que los registros se agrupen con GROUP BY, HAVING determina qué registros se muestran:
SELECT CategoryID,
Sum(UnitsInStock) FROM Products GROUP BY CategoryID HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
Una cláusula HAVING puede contener hasta un máximo de 40 expresiones unidas por operadores lógicos, como And y Or.