●概要●
MIN関数、MAX関数を使用して指定したフィールドの最小値と最大値を取得します。
GROUP BY句と一緒にMIN関数、MAX関数を使用すると、グループごとの最小値と最大値を取得できます。
サンプルでは「部署コード」と「部署名」でグループ化し、グループごとの「給与」の最小値と最大値を取得します。
●サンプル●
'グループごとの最小値と最大値を取得する
Public Sub Sample()
Dim myDB As Database
Dim myRS As DAO.Recordset
Dim mySQL As String
'SQLステートメントを定義する
mySQL = "SELECT A.部署コード,C.部署名,MIN(給与),MAX(給与) " & _
"FROM 社員テーブル A,給与テーブル B,部署テーブル C " & _
"WHERE A.社員コード=B.社員コード " & _
"AND A.部署コード=C.部署コード " & _
"GROUP BY A.部署コード,C.部署名;"
'カレントデータベースを変数に代入する
Set myDB = CurrentDb
'SQLステートメントを実行してレコードセットを開く
Set myRS = myDB.OpenRecordset(mySQL, dbOpenDynaset)
'レコードセットの内容を表示する
Do Until myRS.EOF
Debug.Print myRS(0) & " " & myRS(1) & _
" 最小値:" & myRS(2) & " 最大値:" & myRS(3)
myRS.MoveNext
Loop
'レコードセットを閉じる
myRS.Close
End Sub
●補足●
結果は[イミディエイト]ウィンドウに表示されます。