平成24年度 春期
応用情報技術者試験問題と解答
問26
販売価格が決められていない“商品”表に、次のSQL文を
実行して販売価格を設定する。このとき、販売ランクが b の
商品の販売価格の平均値は幾らか。

 UPDATE 商品 SET 販売価格 =
   CASE
      WHEN 販売ランク = 'a' THEN 単価 * 0.9
      WHEN 販売ランク = 'b' THEN 単価 − 500
      WHEN 販売ランク = 'c' THEN 単価 * 0.7
      ELSE 単価
   END

  商品
 ┌────┬───┬─────┬────┬────┐
 │商品番号│商品名│販売ランク│ 単価 │販売価格│
 ┝━━━━┿━━━┿━━━━━┿━━━━┿━━━━┥
 │1001│ U │  a  │ 2,000 │ NULL │
 ├────┼───┼─────┼────┼────┤
 │2002│ V │  b  │ 2,000 │ NULL │
 ├────┼───┼─────┼────┼────┤
 │3003│ W │  a  │ 3,000 │ NULL │
 ├────┼───┼─────┼────┼────┤
 │4004│ X │  c  │ 3,000 │ NULL │
 ├────┼───┼─────┼────┼────┤
 │5005│ Y │  b  │ 4,000 │ NULL │
 ├────┼───┼─────┼────┼────┤
 │6006│ Z │  d  │  100 │ NULL │
 └────┴───┴─────┴────┴────┘

 ア 1、675  イ 2、100  ウ 2、250  エ 2、500



【正解】 エ

SQL文の意味は、
商品表の CASE で場合分けして、販売価格を更新する。
その条件は
 販売ランクが 'a' の時: 単価*9
 販売ランクが 'b' の時: 単価−500
 販売ランクが 'c 'の時: 単価*0.7
 その他の場合: 単価をそのまま更新

ということである。

条件に合うのは、商品番号が2002と5005で、
その販売価格はそれそれ、
 商品番号2002: 1、500
 商品番号5005: 3、500
となる。
従って、販売ランクが b の販売価格の平均値は
(1、500 + 3、500) ÷ 2 =
2、500である。

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



問25 目次 問27
ファーストマクロ TOPページ