スポンサーリンク

2008-01-25

Tips129 - グループ化し計算後の抽出 GROUP BY,SUM,HAVING

Dim SQL As String
Dim rs As Recordset
SQL = "SELECT 商品名 , SUM(数量*単価) AS 合計金額 FROM 販売テーブル GROUP BY 商品名 HAVING sum(数量*単価)>=15000"
Set rs = CurrentDb.OpenRecordset(SQL)

SUM(数量*単価)が15,000円を以上の商品を抽出しています。
グループ化していますので表示するフィールドは「数量*単価」のみではエラーとなります。
SUM、MIN、MAX等の集計関数を使用する必要があります。

HAVINGはAS句で使用している「合計金額」名は使用できません。
合計金額>=15000 このようにはできません。