A cláusula HAVING no Access especifica quais registros agrupados são exibidos em uma instrução SELECT com uma cláusula GROUP BY. Depois que GROUP BY combina os registros, HAVING exibe todos os registros agrupados pela cláusula GROUP BY que satisfaçam as condições da cláusula HAVING.
Sintaxe
SELECT listacampos
FROM tabela WHERE critériosseleção GROUP BY listacamposgrupo [HAVING critériosgrupo]Uma instrução SELECT contendo uma cláusula HAVING tem estas partes:
Parte |
Descrição |
listacampos |
O nome do campo ou dos campos a serem recuperados junto com qualquer alias de nome de campo, função de agregação SQL, predicado de seleção (ALL, DISTINCT, DISTINCTROW ou TOP) ou outras opções de instrução SELECT. |
tabela |
O nome da tabela da qual os registros são recuperados. |
critériosseleção |
Critérios de seleção. Se a instrução inclui uma cláusula WHERE, o mecanismo de banco de dados do Microsoft Access agrupa os valores após aplicar as condições WHERE aos registros. |
listacamposgrupo |
Os nomes de até 10 campos usados para agrupar os registros. A ordem dos nomes dos campos em listacamposgrupo determina os níveis de agrupamento do mais alto para o mais baixo. |
critériosgrupo |
Uma expressão que determina quais registros agrupados exibir. |
Comentários
HAVING é opcional.
HAVING é similar a WHERE, que determina quais registros são selecionados. Depois que os registros são agrupados com GROUP BY, HAVING determina quais registros são exibidos:
SELECT CategoryID,
Sum(UnitsInStock) FROM Products GROUP BY CategoryID HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
Uma cláusula HAVING pode conter até 40 expressões vinculadas por operadores lógicos, como And e Or.