平成28年度 秋期
基本情報技術者試験問題と解答
問29
“社員”表と“部門”表に対して、次のSQL文を実行したときの結果はどれか。
 SELECT COUNT(*) FROM 社員, 部門
  WHERE 社員.所属 = 部門.部門名 AND 部門.フロア = 2

  社員            部門
 ┌────┬──────┐ ┌──────┬───┐
 │社員番号│  所 属  │ │ 部 門 名 │フロア│
 ┝━━━━┿━━━━━━┥ ┝━━━━━━┿━━━┥
 │ 11001 │総務    │ │企画    │ 1 │
 ├────┼──────┤ ├──────┼───┤
 │ 11002 │経理    │ │総務    │ 1 │
 ├────┼──────┤ ├──────┼───┤
 │ 11003 │営業    │ │情報システム│ 2 │
 ├────┼──────┤ ├──────┼───┤
 │ 11004 │営業    │ │営業    │ 3 │
 ├────┼──────┤ ├──────┼───┤
 │ 11005 │情報システム│ │経理    │ 2 │
 ├────┼──────┤ ├──────┼───┤
 │ 11006 │営業    │ │法務    │ 2 │
 ├────┼──────┤ ├──────┼───┤
 │ 11007 │企画    │ │購買    │ 2 │
 ├────┼──────┤ └──────┴───┘
 │ 12001 │営業    │
 ├────┼──────┤
 │ 12002 │情報システム│
 └────┴──────┘

 ア 1  イ 2  ウ 3  エ 4


【正解】 ウ

SELECT
COUNT(*) FROM 社員, 部門
 WHERE
社員.所属 = 部門.部門名 AND 部門.フロア = 2 は、

部門テーブルのフロア = 2で、社員テーブルの所属 = 部門テーブルの部門名
条件に一致する
行の数を数えるということである。

つまり、社員テーブルの中で所属が、
情報システム、経理、法務、購買
いずれかの行を数えることになる。
該当するのは社員番号が 
11002, 11005, 12002 の行である。

EXCEL VBAのご相談なら ファーストマクロ 



問28 目次 問30
ファーストマクロ TOPページ