ACCESSのサブクエリについて質問です。
同一グループ内
順位が1位、2位
同一都道府県
この条件で抽出をしたいのです。
画像では、東京になっていますが、千葉の時もあれば、埼玉、福島の時もあります。
SELECT MT_成績.[ID], MT_成績.[グループ], MT_成績.[順位], MT_成績.[都道府県]
WHERE (((MT_成績.[グループ]) In (SELECT グループ FROM MT_成績
WHERE ( 順位 =1 And 都道府県= ?????? )
OR ( 順位= 2 And 都道府県= ?????? )
GROUP BY レースID
HAVING Count(1) = 2
)))
ORDER BY MT_成績.[グループ]
同一都道府県は、クエリでどのように表現するのでしょうか?
お手数ですが、ご教示をお願いします。
同一グループ内で順位1、2が同一都道府県のレコードを抽出したいということですよね。
いいかえると、
同一グループかつ同一都道府県のレコード同士を比較して片方が1位もう一方が2位、または片方が2位もう一方が1位のレコードを抽出すればいいということです。
この条件ならサブクエリを使う必要はないです。
「同一グループかつ同一都道府県のレコード同士を比較」の部分はグルーブと都道府県で自己結合すればOKです。
できました。
いつも正確な回答ありがとうございます。
本当に感謝します。
ありがとうございました。
hatena様
図々しいですが、もう一点、ご教示をお願いします。
https://gyazo.com/1faca64f1d679d0793248befd1696ae8
1位、2位は表示できました。
https://gyazo.com/574acf763874b19bbdf18ce5faf397ec
条件を満たしたグループ全部を表示させたい場合はどのようにするのでしょうか?
教えていただいたコードを自分なりに改良したのですが、クエリが何も表示されなくなります。
本当にお手数かと思いますが、ご教示をお願いします。
画像はリンクではなくアップロードして直接表表示させることかできますので、それをご利用ください。
失礼しました。
以後、気をつけます。
何卒宜しくお願い致します。
前のクエリでグループだけ表示させるようにして、DISTINCTで重複を排除します。
(デザインビューでは「固有の値」を「はい」に設定する)
このクエリ(Q_成績)と元の MT_成績 をグループで結合したクエリを作成します。
サブクエリで一つにまとめるなら、下記になります。
hatena様
本当にありがとうございました。
感謝いたします。