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 Jet 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 IdCategoría, Suma(UnidadesEnExistencia) FROM Productos GROUP BY IdCategoría
HAVING Suma(UnidadesEnExistencias) > 100 Y
Como "BOS*";
Una cláusula
HAVING puede contener hasta un máximo de 40 expresiones unidas por operadores
lógicos, como Y y O.
|