経営情報システム R03年度 第10問

第10問

ある中小企業における今週のA部門とB部門の販売実績は、販売実績表A、販売 実績表Bのとおりであった。UNION 句を用いて2 つの表を1 つにまとめたい。 そのためのSQL 文として、最も適切なものを下記の解答群から選べ。 販売実績表A 取引ID 商品番号 商品名 販売単価 販売数量 A001 100 バナナ 100 1 A002 101 リンゴ 120 1 A003 103 メロン 300 1 A004 ・・・ ・・・ ・・・ ・・・ 販売実績表B 取引ID 商品番号 商品名 販売単価 販売数量 B001 100 バナナ 100 1 B002 101 リンゴ 130 2 B003 105 ブドウ 140 2 B004 ・・・ ・・・ ・・・ ・・・

  1. SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 FROM 販売実績表A UNION FROM 販売実績表B;
  2. SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 FROM 販売実績表A UNION SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 FROM 販売実績表B;
  3. SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 FROM 販売実績表A,販売実績表B UNION SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 ;
  4. SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 UNION FROM 販売実績表A,販売実績表B;
  5. SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 UNION SELECT 取引ID,商品番号,商品名,販売単価*販売数量 AS 売上高 FROM 販売実績表A,販売実績表B;
▼ 解答・解説を見る

正解:

解答:イ

UNIONは2つのSELECT文の結果を縦に結合する集合演算子。構文は「SELECT … FROM 表A UNION SELECT … FROM 表B」のように、UNIONの前後それぞれが完結したSELECT文(列数・データ型が一致)である必要がある。

  • ア(×):UNIONの後ろが「UNION FROM 販売実績表B」となっており、SELECT句を欠いた不正な構文。
  • イ(○):表Aのselect文と表Bのselect文をUNIONで結合した正しい構文。各SELECTで売上高(販売単価*販売数量)を算出し、両部門の実績を1つにまとめられる。
  • ウ(×):前半のFROMで両表をカンマ結合(直積)し、後半のSELECTにFROMがない不正な構文。
  • エ(×):FROMの前にUNIONがあり、SELECT文が完結していない不正な構文。
  • オ(×):1つ目のSELECTにFROMがなく、UNIONの前後が完結したSELECT文になっていない。

よって

#データベース

← 経営情報システムの一覧へ戻る