平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
テクノロジ/データベース“製品”表と“在庫”表に対し,次のSQL文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品 WHERE NOT EXISTS (SELECT 製品番号 FROM 在庫 WHERE 在庫数 > 30 AND 製品.製品番号 = 在庫.製品番号) 製品 製品番号|製品名|単価 AB1805|CD-ROMドライブ|15,000 CC5001|ディジタルカメラ|65,000 MZ1000|プリンタA|54,000 XZ3000|プリンタB|78,000 ZZ9900|イメージスキャナ|98,000 在庫 倉庫コード|製品番号|在庫数 WH100|AB1805|20 WH100|CC5001|200 WH100|ZZ9900|130 WH101|AB1805|150 WH101|XZ3000|30 WH102|XZ3000|20 WH102|ZZ9900|10 WH103|CC5001|40 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
- ア1
- イ2
- ウ3
- エ4
正解:イ
解説
このSQL文は,在庫数が30を超える倉庫が一つも存在しない製品番号を,重複なく抽出するものです。AB1805は在庫数150の行があるため除外,CC5001は在庫数200の行があるため除外,MZ1000は在庫表に行が存在せず条件を満たすため該当,XZ3000は在庫数30・20でいずれも30を超えないため該当,ZZ9900は在庫数130の行があるため除外されます。したがって,該当する製品番号はMZ1000とXZ3000の2件です。
選択肢ごとの解説
- ア誤り。条件を満たす製品はMZ1000とXZ3000の2件であり,1件ではありません。
- イ正しい。在庫数が30を超える行が一つもない製品はMZ1000(在庫表に行なし)とXZ3000(在庫数30,20)の2件であり,結果の行数は2です。
- ウ誤り。条件を満たす製品はMZ1000とXZ3000の2件であり,3件ではありません。
- エ誤り。条件を満たす製品はMZ1000とXZ3000の2件であり,4件ではありません。