過去問解説(経営情報システム)_2021年(R3年) 第10問

難易度・正答率・重要度

  • 難易度:★★★☆☆(SQL構文の理解)
  • 正答率:★★★☆☆(構文ミスに注意)
  • 重要度:★★★☆☆(データ統合の基本)

問題文

ある中小企業における今週のA部門とB部門の販売実績は、販売実績表A、販売実績表Bのとおりであった。UNION句を用いて2つの表を1つにまとめたい。
そのためのSQL文として、最も適切なものを下記の解答群から選べ。

販売実績表A

取引ID商品番号商品名販売単価販売数量
A001100バナナ1001
A002101リンゴ1201
A003103メロン3001
A004・・・・・・・・・・・・

販売実績表B

取引ID商品番号商品名販売単価販売数量
B001100バナナ1001
B002101リンゴ1302
B003105ブドウ1402
B004・・・・・・・・・・・・

〔解答群〕

SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高 FROM 販売実績表A
UNION
FROM 販売実績表B;
SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高 FROM 販売実績表A
UNION
SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高 FROM 販売実績表B;
SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高 FROM 販売実績表A, 販売実績表B
UNION
SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高;
SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高 UNION
FROM 販売実績表A, 販売実績表B;
SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高 UNION
SELECT 取引ID, 商品番号, 商品名, 販売単価*販売数量 AS 売上高 FROM 販売実績表A, 販売実績表B;

出典: 中小企業診断協会|2021年度 第1次試験問題|経営情報システム(PDF)

解答

  • 正解:イ

解説

  • ア:×
    UNIONの後にSELECT句がなく、構文不備。
  • イ:〇
    正しい構文。UNION句で2つのSELECT文を結合し、売上高を計算して統合。
  • ウ:×
    FROM句で2表を同時指定しており、クロス結合になる。UNIONの使い方も誤り。
  • エ:×
    SELECT句とFROM句の順序が逆で構文エラー。
  • オ:×
    販売実績表A,Bを同時指定しており、クロス結合になる。UNIONの前提が崩れる。

学習のポイント

  • UNION句: 同じ列構成のSELECT文を結合する。重複行は自動除去(UNION ALLなら除去しない)。
  • 売上高の計算: SELECT内で「販売単価*販売数量 AS 売上高」のように算出可能。
  • 構文の正確性: SELECT句・FROM句・演算・AS句の順序に注意。