HAVING 句 (Microsoft Access SQL)

適用先: Access 2013 | Access 2016

GROUP BY 句を使用した SELECT ステートメントの中で、グループ化したレコードのうちどれを表示するのかを指定します。 GROUP BY 句でレコードをグループ化した後、HAVING 句を使用し、GROUP BY 句でグループ化したレコードのうち HAVING 句の条件を満たすレコードをすべて表示します。

構文

SELECT fieldlist FROM table WHERE selectcriteria GROUP BY groupfieldlist [HAVING groupcriteria ]

HAVING 句を使用する SELECT ステートメントには、次の指定項目があります。

パーツ 説明
fieldlist 取得する 1 つ以上のフィールドの名前。フィールド名の別名、SQL 集計関数、選択述語 (ALL、DISTINCT、DISTINCTROW、および TOP) などの SELECT ステートメント オプションも指定できます。
table データを取得するテーブルの名前。 詳細については、「FROM 句」を参照してください。
selectcriteria 抽出条件。 ステートメントに WHERE 句が含まれている場合、Microsoft Access データベース エンジンは、WHERE 句の条件に従ってレコードを抽出した後に値をグループ化します。
groupfieldlist レコードのグループ化に使用される最大 10 個のフィールドの名前。 グループフィールド リスト内のフィールド名の順序によって、グループ化レベルが最高レベルから最下位レベルのグループ化レベルに決定されます。
groupcriteria グループ化したレコードのうち表示するレコードを指定する式。

注釈

HAVING 句は省略可能です。

HAVING は WHERE に似ています。これにより、選択されるレコードが決まります。 GROUP BY でレコードをグループ化した後、HAVING は表示されるレコードを決定します。

SELECT CategoryID, 
Sum(UnitsInStock) 
FROM Products 
GROUP BY CategoryID 
HAVING Sum(UnitsInStock) > 100 And Like "BOS*";

A HAVING clause can contain up to 40 expressions linked by logical operators, such as And and Or.

次の使用例では、Washington 地域で勤務する複数の社員の役職を選択します。 EnumFields プロシージャを呼び出しますが、このプロシージャについては、SELECT ステートメントの使用例を参照してください。

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 

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。