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
関連項目
- 開発者フォーラムにアクセスする
- support.office.com のヘルプにアクセスする
- UtterAccess のフォーラムにアクセスする
- 開発者と VBA のプログラミング ヘルプ センター (FMS) にアクセスする
- StackOverflow のアクセス ポスト
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。