アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者ですので宜しくお願いします。フィールド1は県、2は市、3は特産物、4は売上とあった場合、売上が一番高い特産物を抽出する文を教えてください。下記の掲載はあくまで例えです。
愛知県瀬戸市陶器400万円
愛知県瀬戸市お花100万円
岐阜県岐阜市漆  200万円
岐阜県岐阜市お茶 100万円
岐阜県土岐市陶器100万円
なら
愛知県瀬戸市陶器400万円
岐阜県岐阜市漆 200万円
岐阜県土岐市陶器100万円というように、掲載されている県と市の高額売上の特産物を抽出したいです。

A 回答 (2件)

>アクセスデザインビューで見ると架空?のテーブル(WK)が出来ますがこれがサブクエリー()内で指定したもののテーブルなのでしょうか?




SQLのSELECT文の通常の使い方は、

SELECT 項目1,項目2,・・・・
FROM テーブル1,テーブル2,・・・
WHERE ・・・・・・

であることは理解されていると思います。

このときのFROM句のテーブルは、事前に作成しているクエリでもOKです。

SELECT 項目1,項目2,・・・・
FROM テーブル1,クエリ1,・・・
WHERE ・・・・・・

このSQLを実行すると、まずクエリ1が実行され、その結果を通常をテーブルとみなして処理されます。


さらに、このクエリを直接SQL文で記述することもできます。
こういう使い方をサブクエリと言います。

SELECT 項目1,項目2,・・・・
FROM テーブル1,(SELECT 項目3,項目4 FROM テーブル2 WHERE ・・・),・・・
WHERE ・・・・・・

このとき、サブクエリの項目を他で使いたいときに、名前がないと使えないのでAS句で名前を付けます。
名前はなんでもOKです。

SELECT 項目1,項目2,・・・・
FROM テーブル1,(SELECT 項目3,項目4 FROM テーブル2 WHERE ・・・) AS WK,・・・
WHERE ・・・・・・

これが、#1で書いたSQL文です。



サブクエリはFROM句だけではなく他にも使えますが、使い方を誤ると無駄に処理時間が掛かることもあるので注意が必要です。
    • good
    • 0

サブクエリーを使います。



SELECT TBL.県, TBL.市, TBL.特産物, TBL.売上
FROM TBL, (SELECT 県, 市, Max(売上) as 最大売上 FROM TBL GROUP BY 県, 市) AS WK
WHERE TBL.県=WK.県 And TBL.市=WK.市 And TBL.売上=WK.最大売上
    • good
    • 0
この回答へのお礼

nag0720様、早速の回答有難うございました。出来ました(ホッ)。アクセスデザインビューで見ると架空?のテーブル(WK)が出来ますがこれがサブクエリー()内で指定したもののテーブルなのでしょうか?頭硬いお馬鹿ではシンプルそうな文でも発想湧かないです。ネット検索で一つ少ない項目のパターンがありましたのでその文に色々追加し試みたのですが構文エラーばかりとなり、四苦八苦しておりました。ところで、WKを違う文言に直し項目も違うものにしてみたら、結果は同じになりましたが、デザインビューを確認すると新たにフィールドが追加(WHERE)されもう一方の元テーブルの集計キーも演算となってました。挙句には下手に文字を変更したら構文エラーとなるケースも出ました。奥が深いですね~。いずれにしても有難うございます。

お礼日時:2012/09/30 09:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!