HOME > 即効テクニック > AccessVBA > クエリ・SQL > グループごとの最小値/最大値を取得する

即効テクニック

クエリ・SQL

グループごとの最小値/最大値を取得する

(Access 2000/2002)
●概要●
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
●補足●
結果は[イミディエイト]ウィンドウに表示されます。