Table of contents
TOC
Recolher sumário
Expandir sumário

Cláusula HAVING (Microsoft Access SQL)HAVING Clause (Microsoft Access SQL)

office 365 dev account|Última Atualização: 03/04/2018
|
2 Colaboradores

Aplica-se ao: Access 2013 | Access 2016Applies to: Access 2013 | Access 2016

Neste artigosintaxecomentários exemploIn this articleSyntaxRemarks Example

Especifica quais registros agrupados serão exibidos em uma instrução SELECT com uma cláusula GROUP BY.Specifies which grouped records are displayed in a SELECT statement with a GROUP BY clause.ApósGROUP BY combinar registros, HAVING exibe quaisquer registros agrupados pela cláusula GROUP BY que satisfazem as condições da cláusula HAVING.AfterGROUP BY combines records, HAVING displays any records grouped by the GROUP BY clause that satisfy the conditions of the HAVING clause.

SintaxeSyntax

Selecione fieldlist FROM tabela onde o selectcriteria Agrupar por groupfieldlist [HAVING groupcriteria ]SELECT fieldlist FROM table WHERE selectcriteria GROUP BY groupfieldlist [HAVING groupcriteria ]

Uma instrução SELECT que contém a cláusula HAVING tem estas partes:A SELECT statement containing a HAVING clause has these parts:

PartePartDescriçãoDescription
fieldlistfieldlistO nome do campo ou dos campos a serem recuperados, junto com qualquer alias de nome de campo, funções agregadas do SQL, predicados de seleção (ALL, DISTINCT, DISTINCTROW ou TOP), ou outras opções da instrução SELECT.The name of the field or fields to be retrieved along with any field-name aliases, SQL aggregate functions, selection predicates (ALL, DISTINCT, DISTINCTROW, or TOP), or other SELECT statement options.
tabletableO nome da tabela a partir da qual os registros são recuperados.The name of the table from which records are retrieved.Para obter mais informações, consulte a cláusula FROM .For more information, see the FROM clause.
selectcriteriaselectcriteriaCritérios de seleção.Selection criteria.Se a instrução inclui uma cláusula WHERE , o mecanismo de banco de dados do Microsoft Access agrupa valores após aplicar as condições WHERE aos registros.If the statement includes a WHERE clause, the Microsoft Access database engine groups values after applying the WHERE conditions to the records.
groupfieldlistgroupfieldlistOs nomes de até 10 campos usados para agrupar registros.The names of up to 10 fields used to group records.A ordem dos nomes de campo na groupfieldlist determina os níveis de agrupamento da maior para o menor nível de agrupamento.The order of the field names in groupfieldlist determines the grouping levels from the highest to the lowest level of grouping.
GroupCriteriagroupcriteriaUma expressão que determina quais registros agrupados serão exibidos.An expression that determines which grouped records to display.

ComentáriosRemarks

HAVING é opcional.HAVING is optional.

HAVING é semelhante a WHERE, que determina quais registros serão selecionados. Depois que os registros são agrupados com GROUP BY, HAVING determina quais registros são exibidos:HAVING is similar to WHERE, which determines which records are selected. After records are grouped with GROUP BY, HAVING determines which records are displayed:

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.A HAVING clause can contain up to 40 expressions linked by logical operators, such as And and Or.

ExampleExample

Este exemplo seleciona os cargos atribuídos a mais de um funcionário na região Washington.This example selects the job titles assigned to more than one employee in the Washington region.

This example calls the EnumFields procedure, which you can find in the SELECT statement example.This example calls the EnumFields procedure, which you can find in the SELECT statement example.

Sub HavingX() 

    Dim dbs As Database, rst As Recordset 

    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 

    ' Select the job titles assigned to more than one  
    ' employee in the Washington region.  
    Set rst = dbs.OpenRecordset("SELECT Title, " _ 
        &; "Count(Title) as Total FROM Employees " _ 
        &; "WHERE Region = 'WA' " _ 
        &; "GROUP BY Title HAVING Count(Title) > 1;") 

    ' Populate the Recordset. 
    rst.MoveLast 

    ' Call EnumFields to print recordset contents. 
    EnumFields rst, 25 

    dbs.Close 

End Sub 

RECURSOS DE SUPORTE DO ACCESSACCESS SUPPORT RESOURCES
Fórum do Access para desenvolvedores no MSDNAccess for developers forum on MSDN
Ajuda do Access em support.office.comAccess help on support.office.com
Ajuda do Access em answers.microsoft.comAccess help on answers.microsoft.com
Procure erros de código específicos do Access no BingSearch for specific Access error codes on Bing
Fóruns do Access no UtterAccessAccess forums on UtterAccess
Wiki do Access no UtterAcessAccess wiki on UtterAcess
Central de ajuda da programação VBA e desenvolvedor do Access (FMS)Access developer and VBA programming help center (FMS)
Postagens do Access no StackOverflowAccess posts on StackOverflow

© 2018 Microsoft