問1 社内試験と社外資格の取得の履歴管理に関する次の記述を読んで,設問1〜3に答えよ。
設問2 Bさんは,人事部長から,社内試験を受けて3等級への昇格の前提条件を満たした社員の部名, 社員番号及び社員名の一覧の作成を依頼され,次のようなSQL文を作成したが,
満足な結果が得られなかった。このSQL文の実行に関する記述として適切なものを,解答群の中から選べ。
SELECT 部名表.部名,社内試験履歴表.社員番号,社員表.社員名
FROM 社内試験履歴表,社内試験表,部名表,社員表
WHERE 社内試験履歴表.試験番号 = 社内試験表.試験番号
AND 社内試験履歴表.合否区分 = '1'
AND 社内試験表.職位番号 = '02'
AND 社内試験履歴表.社員番号 = 社員表.社員番号
AND 社員表.部番号 = 部名表.部番号
ORDER BY 部名表.部番号,社内試験履歴表.社員番号
解答群
ア 異動した社員は,現在所属している部のほかに異動前の部も重複して出力される。
イ 現在1等級で,2等級への昇格の前提条件を満たした社員が出力される。
ウ 社内試験を受けて既に昇格している社員まで出力される。
エ 社内試験を受けなかった社員も出力される。
解答 ウ
SQL文中に「AND 社内試験表.職位番号 = “ 02 ”」としてしまっているため、社内試験表にある職位番号のみの判断となり、 既に昇給している社員も抽出されてしまう。
現在の職位を加味した上で抽出するためには、社員表からの職位番号の抽出が必要である。
| ア |
AND 社員表.部番号=部名表.部番号 としているため、現在所属している部のみが抽出される。 |
| イ |
現在の等級については記述されていない。 |
| エ |
AND 社内試験履歴表.合否区分= ” 1 ” としているため、試験を受けていない社員が抽出されることはない。 |
|