戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2021年 95


問題文

関係データベースで管理された“商品”表、“売上”表から売上日が5月中で、かつ、商品ごとの合計額が20,000円以上になっている商品だけを全て挙げたものはどれか。
ITパスポート 2021年  問95の問題画像

選択肢

商品A, 商品B, 商品C
商品A, 商品B, 商品C, 商品D
商品B, 商品C(正解)
商品C

🔒 解説は解答すると表示されます

売上日が5月中で、商品ごとの合計額が20,000円以上の商品の抽出【ITパスポート 解説】

正解の理由

売上日(売上が発生した日)が5月の取引だけを対象にし、各商品について「売上金額=単価×個数」を合計して、その合計が20,000円以上になる商品を選びます。表を確認すると、5月分の合計金額が条件を満たすのは「商品B」と「商品C」です。したがって該当する選択肢は になります。
理由を短く示すと:
  • 商品A:5月の合計個数 9 → 9 × 2,000 = (20,000未満) → 除外
  • 商品B:5月の合計個数 6 → 6 × 4,000 = (条件を満たす) → 採用
  • 商品C:5月の合計個数 3 → 3 × 7,000 = (条件を満たす) → 採用
  • 商品D:5月の売上なし → 0 → 除外

解法ステップ

初心者にも分かる順序で考えます。
  1. 「売上日」が5月の行だけを抽出する(例:日付が「5/…」の行)。
    • ここで言う「売上日」は、売上が記録された日付。配達日は関係ありません。
  2. 抽出した行について、商品コードごとに個数を合計する(同じ商品の複数行をまとめる)。
  3. 商品表から「単価(円)」を取り出し、各商品の合計個数 × 単価 を計算して「合計金額」を求める。
  4. 合計金額が20,000円以上のものだけを残す。
(補足:データベースの操作で表現すると、SQL(Structured Query Language:データベース操作の言語)を使って「JOIN(結合:別表の情報を横につなげる)」→「GROUP BY(グループ化:商品ごとにまとめる)」→「HAVING(グループ化後の条件指定:集計結果に対する条件)」の順に処理します。)
参考のSQL例:
SELECT p.商品名, SUM(s.個数 * p.単価) AS 合計金額
FROM 売上 s
JOIN 商品 p ON s.商品コード = p.商品コード
WHERE s.売上日 LIKE '5/%'    -- 売上日が5月の行を抽出(表記がM/Dなので文字列で判定)
GROUP BY p.商品名
HAVING SUM(s.個数 * p.単価) >= 20000;
(注)現実のデータでは日付は年を含む形式や日付型で管理されるため、MONTH() 関数などを使います。

選択肢別の誤答解説

  • ア: 商品A, 商品B, 商品C
    誤り。商品Aは5月の合計が で条件の20,000円に達していません。
  • イ: 商品A, 商品B, 商品C, 商品D
    誤り。商品Aは金額不足、商品Dは5月の売上がなく合計0円のため両方除外されます。
  • : 商品B, 商品C
    正しい。上記計算で商品Bが24,000円、商品Cが21,000円で条件を満たします。
  • エ: 商品C
    誤り。商品Cは条件を満たしますが、同様に商品Bも条件を満たすため商品Cだけでは不十分です。

よくある誤解

  1. 売上日ではなく配達日で判断してしまう
    • 配達日(商品が届いた日)ではなく、問題文で指定されているのは「売上日」です。配達日が5月でも売上日が4月なら対象外です。
  2. 4/30や6/1などを5月と誤認する
    • 日付の月だけを見ること。4/30は4月、5/30は5月、6/8は6月です。特に4/30と5/1の境目を混同しやすいので注意してください。
  3. 単に「個数の合計」だけ比較してしまう
    • 条件は「合計額(単価×個数の合計)」です。単価が違えば同じ個数でも金額は変わります。

補足コラム

  • 集計条件に対するSQLの使い分け
    • WHERE は行単位の条件(=集計前)に使います。例:売上日が5月であること。
    • HAVING はGROUP BY 後の集計結果に対する条件に使います。例:合計金額が20,000以上。
      この違いを押さえると、データベースでの集計処理を正確に書けます。
  • スプレッドシート(ExcelやGoogleスプレッドシート)でのやり方
    1. フィルタで売上日を5月に限定、2) ピボットテーブルで商品ごとに個数を合計、3) 元の表から単価を参照して金額を計算、4) 20,000以上を抽出、という手順で同じ結果が得られます。

FAQ

Q1. 売上日が「5/15」と「5/15」が複数行にある場合、それぞれ計算するの?
A1. はい。まず各行の個数と単価の積を合算して、商品ごとにまとめます(同じ日の複数行も合算されます)。
Q2. 配達日が5月でも売上日は4月なら集計対象になる?
A2. いいえ。問題は「売上日が5月中」で指定されています。配達日は無関係です。
Q3. 表中の日付に年が書かれていませんが問題ありませんか?
A3. 問題の図では年が省略されています。通常は同じ年として扱うか、月だけで判定するのがこの種の設問の扱いです。

関連キーワード: SQL、JOIN、GROUP BY、HAVING、集計、フィルタリング、売上集計
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について