本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成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' の時: 単価 * 0.9
 販売ランクが 'b' の時: 単価 - 500
 販売ランクが 'c 'の時: 単価 * 0.7
 その他の場合: 単価をそのまま更新

ということである。

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

問25 目次 問27