平成27年度 秋期
応用情報技術者試験問題と解答
問29
“倉庫別商品在庫集計”表から在庫数の合計を求めたい。
倉庫番号‘C003’の倉庫で在庫数が100以上の商品に対して、
全ての倉庫における在庫数の合計を求める SQL 文の a に入る
適切な字句はどれか。ここで、該当する商品は複数存在すると
ともに在庫数が100未満の商品も存在するものとする。
また、実線の下線は主キーを表す。

倉庫別商品在庫集計 (倉庫番号商品コード、在庫数)

〔SQL文〕
 SELECT 商品コード, SUM(在庫数) AS 在庫合計 FROM
     倉庫別商品在庫集計
     WHERE    a  
     GROUP BY 商品コード
 ア 商品コード = (SELECT 商品コード FROM 倉庫別商品在庫集計
          WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)
 イ 商品コード = ALL (SELECT 商品コード FROM 倉庫別商品在庫集計
          WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)
 ウ 商品コード IN (SELECT 商品コード FROM 倉庫別商品在庫集計
          WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)
 エ EXISTS (SELECT * FROM 倉庫別商品在庫集計
          WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)



【正解】 ウ

ア エラーになる。
イ 括弧内の要素が1つだけの場合に有効となるが、
 カッコ内の要素が複数になる場合、1つの商品コードが括弧内の全ての
 集合と一致し得ないので、在庫は0となる。
ウ 正しい。括弧内の要素と、商品コードが一致する場合のSQL 文には
 = を使用せず、IN を使用する。

エ 倉庫番号 = 'C003' AND 在庫数 >= 100 の条件に合致したものがあれば
 EXISTS () は真を返すため、問題の条件にあった在庫数は求められない。


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



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