<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>クエリを極める
  



 menu

46. 各グループの平均売上金額以上のものだけ抽出(サブクエリの応用)

こいつはちょっとばかし難しいです。
基本的には45.の「サブクエリ」と同じなんですが、サブクエリというのは「1列」じゃないと成り立たないわけです。

つまり、[売上]の抽出条件欄に書いているSQL文自体の実行結果は、

これなんですけど↓

1列ですよね。これは、全体の売上金額の平均です。
各グループの売上平均は、こういう↓集計クエリで求めることができますが、これだと、2列ですよね。

これをそのまま[売上]のフィールドに対する抽出条件欄に書いても、2列あるうちのどちらを抽出条件の値として使っていいかわからなくて、このクエリはエラーになっちゃいます。

サブクエリの抽出条件として使えるのは、「結果が1列だけになるSQL」なんですね・・・。
うーん、とすると、「グループごとの平均金額」は、サブクエリの抽出条件にはできないのかな・・・。

普通に考えるとこれは不可能なんですが・・・。
かなりややこしいんですけどね。
このSQL文で使ってる[社員テーブル]と、大元のクエリで使ってる[社員テーブル]を、あたかも別のテーブルみたいに見立てて、両方のテーブルの[グループ]を結び付けて無理やり関連付けちゃおうというわけなんです。

ちょっと分かりにくいですが、[社員テーブル]に[社員テーブルA]という↑仮の名前をつけてます。
こうすることで、同じテーブルなんですけど、[社員テーブル]が二つあるみたいに扱えるんですね。

で、このSQL文を、カッコでくくって抽出条件欄に入力してやります。
今回は「平均以上のネコ」を出したいので、>=(以上)という不等号も忘れずに・・・。


【参考:SQL文で書くと?】