次の方法で共有


Access SQL を使用して結果セット内のレコードをグループ化する

請求書テーブルの場合のように、テーブル内のレコードが論理的に関連していることがあります。 1 人の顧客が多数の請求書を持つことができるため、グループに関する統計情報と概要情報を見つけるために、1 人の顧客のすべての請求書をグループとして処理すると便利な場合があります。

レコードをグループ化するために重要な点は、グループ化するすべてのレコードの 1 つ以上のフィールドに同じ値が入っていなければならないということです。 請求書テーブルの場合、特定の得意先に対して作成されるすべての請求書で [CustomerID] フィールドの値は同一です。

レコードのグループを作成するには、グループ化するフィールドの名前を 指定して GROUP BY 句を使用します。

SELECT CustomerID, Count(*) AS [Number of Invoices], 
    Avg(Amount) AS [Average Invoice Amount] 
    FROM tblInvoices 
    GROUP BY CustomerID 

明細書は、請求書テーブルに請求書レコードを持つすべての顧客に対して、顧客 ID、顧客が持っている請求書の数、および平均請求書金額を示す 1 つのレコードを返します。 各顧客請求書はグループとして処理されるため、請求書の数をカウントし、平均請求書金額を決定できます。

WHERE 句と同様の HAVING 句を使用して、グループ レベルで条件を指定できます。 たとえば、次のクエリでは、平均請求書金額が 100 未満の顧客ごとにそれらのレコードのみが返されます。

SELECT CustomerID, Count(*) AS [Number of Invoices], 
    Avg(Amount) AS [Average Invoice Amount] 
    FROM tblInvoices 
    GROUP BY CustomerID 
    HAVING Avg(Amount) < 100 

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

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