ITパスポート 2010年 秋期 問84
問題文
関係データベースで管理している“商品”表及び“売上”表を結合して商品の売上集計を行う。5月の売上合計金額が最も大きい商品はどれか。

選択肢
ア:商品A
イ:商品B(正解)
ウ:商品C
エ:商品D
🔒 解説は解答すると表示されます
5月の売上合計金額が最も大きい商品はどれか【ITパスポート 解説】
正解の理由
理由は「売上日」(売上が発生した日)を基準に5月分の売上数量を集計し、各商品の価格と掛け合わせた合計金額を比べると、商品Bの合計金額が最も大きくなるためです。
(補足)ここで使う用語の説明:
- 関係データベース(Relational Database:表でデータを管理する仕組み)
- 結合(JOIN:複数の表をキーでつなぎ、関連するデータを組み合わせる操作)
- 集計(aggregate:合計や平均などを計算すること)
- SQL(Structured Query Language:データベースを操作するための言語)
解法ステップ
- 「5月の売上」をどの日時で判定するか確認する。問題文では売上の発生を示す「売上日」を使うのが普通です(配達日ではない)。
- 売上表から売上日が5月(5/1〜5/31)の行だけを取り出す。該当する行は次の通り:
- Z00002(商品0001、数量1、売上日5/1)
- Z00003(商品0003、数量2、売上日5/15)
- Z00004(商品0001、数量3、売上日5/15)
- Z00005(商品0002、数量3、売上日5/5)
- Z00006(商品0001、数量2、売上日5/10)
- Z00007(商品0002、数量1、売上日5/30)
- 各行の「数量 × 商品の価格」で金額を求め、同じ商品ごとに合計する。価格は商品表から参照します。
- 商品A(0001): 数量 1 + 3 + 2 = 6 → 金額
- 商品B(0002): 数量 3 + 1 = 4 → 金額
- 商品C(0003): 数量 2 → 金額
- 商品D(0004): 5月の売上日該当なし → 金額
- 比較すると、商品Bが最も大きい(16,000円)ため正解は商品B(イ)。
選択肢別の誤答解説
- ア: 商品A
- 間違いの理由:商品Aは合計数量6で円です。商品Bの16,000円より小さいため誤りです。
- イ: 商品B(正解)
- 正しい理由:5月の売上日ベースで合計すると数量4、金額円で最大になります。
- ウ: 商品C
- 間違いの理由:商品Cは5月の売上で数量2、金額円です。商品Bの16,000円に届かないため誤りです。
- エ: 商品D
- 間違いの理由:売上日ベースでは商品Dの売上は4/30で、5月の売上日には該当しません(配達日が5/2でも売上日は4/30)。したがって5月分は0円です。
よくある誤解
- 配達日で集計してしまう
- 誤りになりやすい点です。問題文で基準日が明示されていない場合、「売上の発生」を示す売上日で集計するのが一般的です。配達日(納品日)を使うと結果が変わる場合があります(今回だと商品Dが最高になる)。
- 日付の範囲に6月1日を含めるミス
- 6/1は5月ではありません。売上日の月だけで判断します。Z00008(売上日6/1)は集計に入れないことを忘れないでください。
- 金額を出さず数量だけで判断する
- 必ず「数量 × 価格」で金額を計算して比較します。価格が違えば数量が同じでも順位は変わります。
補足コラム
- 問題演習では「どの日時を基準にするか(売上日、配達日、請求日など)」を設問文でよく確認してください。実務でも会計や集計基準が違うと数字が変わります。
- SQLで同じ集計を行う場合の例(参考):
-- 売上日が5月の売上金額を商品ごとに合計する例(SQL)
SELECT p.商品名, SUM(s.数量 * p.価格) AS 売上金額
FROM 売上 s
JOIN 商品 p ON s.商品コード = p.商品コード
WHERE s.売上日 BETWEEN '2023-05-01' AND '2023-05-31'
GROUP BY p.商品名
ORDER BY 売上金額 DESC;
- 上のSQLでは「JOIN(結合)」で売上表と商品表をつなぎ、GROUP BYで商品ごとに集計しています。SQLは実務でもよく使われる基本ツールです。
FAQ
Q1. 問題で「売上日」と「配達日」のどちらを使うべきか分からないときは?
A1. 多くの問題では「売上日」が売上の判定基準です。設問に特に指定がない場合は売上日を使うのが無難です。実務では会社ルール(会計基準)に従います。
A1. 多くの問題では「売上日」が売上の判定基準です。設問に特に指定がない場合は売上日を使うのが無難です。実務では会社ルール(会計基準)に従います。
Q2. 同じ合計金額が複数商品で並んだらどうする?
A2. 問題文に指示がなければ「同率で最多」と解釈するか、選択肢の中で該当するものを選びます。多肢選択問題で明示がない場合はテキストの条件を再確認してください。
A2. 問題文に指示がなければ「同率で最多」と解釈するか、選択肢の中で該当するものを選びます。多肢選択問題で明示がない場合はテキストの条件を再確認してください。
Q3. 「結合(JOIN)」がよく分かりません。
A3. 結合は別々の表を共通のキー(ここでは商品コード)でつなぎ、必要な情報(価格や商品名)を一つにまとめる操作です。表同士を貼り合わせて1行にまとめるイメージです。
A3. 結合は別々の表を共通のキー(ここでは商品コード)でつなぎ、必要な情報(価格や商品名)を一つにまとめる操作です。表同士を貼り合わせて1行にまとめるイメージです。
関連キーワード: 関係データベース、結合、売上集計、JOIN、GROUP BY、集計関数、SQL、売上日、配達日、数量×価格

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

