[SQL文]
SELECT 社員番号, 社員名 FROM 社員 AS S1
WHERE 生年月日 > ( a )
ア
SELECT MIN(生年月日) FROM 社員 AS S2
GROUP BY S2.性別
イ
SELECT MIN(生年月日) FROM 社員 AS S2
WHERE S1.生年月日 > S2.生年月日
OR S1.性別=S2.性別
ウ
SELECT MIN(生年月日) FROM 社員 AS S2
WHERE S1.性別=S2.性別
エ
SELECT MIN(生年月日) FROM 社員
GROUP BY S2.性別
答え ウ
【解説】
この命題の解き方は、“社員”表から任意の2人を選択し、性別が同じ場合、年少の社員を取り出す処理を行うとできます。
ここで、問題のSQL文では“社員”表から一人の社員(S1)を選択し生年月日を比較しようとしているので、 a に入るのは、もう一人の社員(S2)を選択し、S1と比較し年長の社員の生年月日を出力すれば良いので、そのSQL文は『S1とS2が同性のとき、年長の社員の生年月日を出力』になり SELECT MIN(生年月日) FROM 社員 AS S2
WHERE S1.性別=S2.性別
(ウ)になります。