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

基本情報技術者 2011年 春期 午前(科目A)27


問題文

ある企業では、顧客マスタファイル、商品マスタファイル、担当者マスタファイル及び当月受注ファイルを基にして、月次で受注実績を把握している。各ファイルの項目が表のとおりであるとき、これら四つのファイルを使用して当月分と直前の3か月分の出力が可能な受注実績はどれか。
基本情報技術者 2011年 春期 午前(科目A) 問27の問題画像

選択肢

顧客別の商品別受注実績
商品別の顧客別受注実績
商品別の担当者別受注実績
担当者別の顧客別受注実績(正解)

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

担当者別顧客別受注実績【午前解説】

正解の理由

正解は (担当者別の顧客別受注実績)です。理由は次の通りです。
  • 当月の受注は当月受注ファイル(顧客コード、商品コード、受注額)から顧客ごとの明細が得られ、顧客マスタの担当者コードで担当者に紐付けて担当者別・顧客別に集計できます。
  • 直前3か月分については、顧客マスタが各顧客の「前月受注額、2か月前受注額、3か月前受注額」を保持しており、顧客ごとの過去3か月分が直接参照可能です。したがって担当者ごとに顧客の過去実績を合算して担当者別の顧客別集計が可能です。

解法ステップ

  1. 出力したい集計の「粒度」(例:担当者×顧客、商品×担当者、顧客×商品)を明確にする。
  2. 当月分については当月受注ファイル(顧客コード、商品コード、受注額)でその粒度に変換可能か検討する(必要に応じて顧客マスタや担当者マスタと結合)。
  3. 直近3か月分については、各マスタに過去月データがどの粒度で保存されているかを確認する(顧客マスタは顧客単位、商品マスタは商品単位)。
  4. 必要粒度の過去データが存在しない場合は出力不可と判断する(例:顧客×商品や商品×担当者の過去月明細がない)。
  5. 可の場合は適切に結合・集計してレポートを作成する。

選択肢別の誤答解説

  • ア: 顧客別の商品別受注実績
    • 当月は当月受注ファイルで顧客×商品が可能ですが、直前3か月分は顧客マスタが顧客単位の合計しか持たないため、顧客×商品という粒度の過去データがありません。よって不可です。
  • イ: 商品別の顧客別受注実績
    • 表現は入れ替わっていますが本質は顧客×商品の出力と同等で、過去3か月の顧客×商品内訳が商品マスタ/顧客マスタどちらにも存在しないため不可です。
  • ウ: 商品別の担当者別受注実績
    • 当月は当月受注ファイル+顧客マスタ(顧客→担当者)で商品×担当者の当月集計は可能ですが、直前3か月分では商品マスタに商品単位の過去実績はありますが、担当者別に割り振る情報がないため過去3か月分を担当者別に出せません。
  • エ: 担当者別の顧客別受注実績(正解)
    • 当月は当月受注を顧客ごとに集計し顧客マスタの担当者コードで担当者へ紐付け可能、直前3か月分は顧客マスタに顧客別で過去3か月分の受注額があるため、担当者別・顧客別の月次出力が可能です。

よくある誤解

  • 「商品マスタに前月等の項目があるから商品ベースの過去集計は可能」と考えがちですが、商品マスタは商品単位の履歴であり、担当者別や顧客別に割り振る情報はありません。
  • 「当月ファイルとマスタを単純に結合すればすべての粒度で過去も出る」と誤認されることがあります。過去の月次値がどの粒度(顧客単位/商品単位)で保存されているかが重要です。
  • 顧客マスタの過去月データを顧客×商品に配分するには追加の詳細データが必要(ない場合は不可能)であることを見落とすとミスになります。

補足コラム

データ設計の観点では「どの粒度で履歴を保持するか」が後々のレポート可能性を左右します。今回のケースは顧客単位と商品単位で別々に過去データを持つため、交差した粒度(顧客×商品や商品×担当者)の過去履歴が必要ならば、月次明細(顧客コード・商品コード・受注額・年月)を履歴テーブルで保持するべきです。BIやDWHを導入する際はファクトテーブル(受注明細の月次アグリゲートまたは明細)の設計が重要になります。
実務でのSQL例(担当者別の顧客別当月+過去3か月を集計する例)
-- 当月の顧客別合計
SELECT c.担当者コード, c.顧客コード, SUM(t.受注額) AS 当月受注
FROM 当月受注 t
JOIN 顧客マスタ c ON t.顧客コード = c.顧客コード
GROUP BY c.担当者コード, c.顧客コード;

-- 過去3か月分は顧客マスタの列をそのまま使用
SELECT c.担当者コード, c.顧客コード, c.前月受注額, c.2か月前受注額, c.3か月前受注額
FROM 顧客マスタ c;

FAQ

Q1. 商品マスタの「前月受注額」列は使えないのですか?
A1. 商品単位の過去集計は可能ですが、担当者別や顧客別など別粒度に分解する情報がないため、粒度を変えた過去集計には使えません。
Q2. 当月は商品別・顧客別の明細があるので、どうして顧客×商品で過去も出せないのですか?
A2. 当月は明細があるため顧客×商品は可能ですが、過去は顧客マスタ/商品マスタのいずれも顧客×商品という組合せの内訳を保存していないため、過去内訳は復元できません。
Q3. 対策は?過去の粒度を増やすには?
A3. 月次の受注明細をファクトテーブルとして履歴保存するか、バッチで月次集計を粒度別に保存しておく設計にすることで将来の分析要件に備えられます。

関連キーワード: 顧客マスタ、商品マスタ、担当者マスタ、当月受注、集計粒度、データ結合、月次集計、履歴設計、SQL、マスタ設計
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

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