Microsoft Access 掲示板

ACCESSのサブクエリについて / 6

7 コメント
views
4 フォロー
6

前のクエリでグループだけ表示させるようにして、DISTINCTで重複を排除します。
(デザインビューでは「固有の値」を「はい」に設定する)

SELECT 
    DISTINCT a.グループ
FROM
    MT_成績 AS a INNER JOIN MT_成績 AS b
     ON a.都道府県 = b.都道府県
    AND a.グループ = b.グループ
WHERE
    a.順位 = 1 AND b.順位 = 2
    OR 
    a.順位 = 2 AND b.順位 = 1;

このクエリ(Q_成績)と元の MT_成績 をグループで結合したクエリを作成します。

SELECT
  a.*
FROM
  MT_成績 AS a INNER JOIN Q_成績 AS b
  ON a.グループ = b.グループ;

サブクエリで一つにまとめるなら、下記になります。

SELECT
  a.*
FROM
  MT_成績 AS a INNER JOIN
  (
    SELECT 
      DISTINCT a.グループ
    FROM
      MT_成績 AS a INNER JOIN MT_成績 AS b
      ON a.都道府県 = b.都道府県
      AND a.グループ = b.グループ
    WHERE
      a.順位 = 1 AND b.順位 = 2
      OR 
      a.順位 = 2 AND b.順位 = 1 
  ) AS b
  ON a.グループ = b.グループ;
通報 ...