跳到正文

平成26年度 秋期 ITパスポート試験 問99

这道题的解析和你的作答记录。

問99
頻出度★★☆

広告代理店の A 社では,申請者が経理部に回付した交通費精算伝票(以下,伝票という)を使って,顧客訪問時に発生した交通費の精算業務を行っている。 〔現在の交通費精算業務の流れ〕 (1)申請者は,伝票に申請者名,社員番号,経費科目,顧客番号,利用日,利用区間,金額及び合計金額を記入する。押印後,事務担当者に回付する。 (2)事務担当者は,申請内容を精査し,誤りがなければ伝票を承認者に回付する。誤りがあれば,伝票を申請者に差し戻す。 (3)承認者は,承認又は否認の決裁を行う。内容が適切であった場合には承認して,事務担当者に回付する。内容が適切でなければ否認して,申請者に差し戻す。 (4)(2)又は(3)で差し戻された場合,申請者は伝票を修正し,再度事務担当者に回付する。 (5)事務担当者は,承認者から回付された当日分の承認済み伝票を取りまとめ,伝票番号を採番し,経理部に回付する。 (6)経理担当者は,事務担当者から回付されてきた承認済み伝票の支払処理を行う。 交通費精算を効率よく行うために,データベースを活用して,次に示す機能要件の交通費精算システム(以下,精算システムという)を構築することにした。 〔精算システムの機能要件の一部〕 (1)社員番号でログオンする。社員番号によって,社員表から申請者名を抽出し,申請画面の共通項目として設定する。 (2)申請画面の明細として,顧客番号,利用日,利用区間と金額を入力する。1回の申請で複数の顧客訪問に対する明細が入力できる。また,合計金額の算出,経費科目の設定及び伝票番号の自動採番を行う。ここで経費科目として,交通費を自動設定する。 (3)申請後,事務担当者が精査を行い,自動的に承認者に通知が行く。承認者は決裁画面で承認か否認かを選択する。 (4)支払画面で承認済み申請を社員ごとに集計し,支払金額を算出する。 精算システムのデータベースを使って,図1に示す顧客別社員別交通費実績表(以下,実績表という)を作成することにした。実績表を作成する手順として,dに入れる適切なものはどれか。ここで,実績表に出力する伝票は,申請日が前月であり,かつ,承認区分が“承認”のものとする。 また,精算システムで利用される表は図2のとおりである。 〔実績表の作成手順〕 (1)精算表から,申請日が前月かつ承認区分が“承認”のデータを抽出する。 [ d ] (4)(3)の表と社員表と顧客表を結合して,顧客名と社員名を取得する。 図1 顧客別社員別交通費実績表の例

顧客番号顧客名社員番号社員名金額
000100B商事2005123田中太郎2,500
000100B商事2006211鈴木太郎4,300

図2 精算システムで利用される表 精算表

伝票番号申請日社員番号承認区分

明細表

伝票番号明細番号顧客番号利用日利用区間金額

社員表

社員番号社員名

顧客表

顧客番号顧客名住所電話番号

注記 主キーは表示していない。

出典 平成26年度 秋期 ITパスポート試験 問99
解説

問 99

  • ア

    正解 要求出的是图1中「按客户按员工分类」的交通费业绩表,也就是客户与员工的每一个组合占一行、金额为该组合合计的表。这里先用图2确认所需的列分别位于哪张表中。金额和客户编号只存在于明细表,员工编号只存在于结算表。也就是说,只看其中一张表,无法知道「哪个客户、由哪个员工、花了多少钱」。因此在(2)中,把步骤(1)筛选出的结算表(上个月申请且已批准)与明细表,按两张表共有的单据编号进行连接。这样一行之中就同时具备了员工编号、客户编号和金额。接着在(3)中,对这个连接结果,按客户编号与员工编号相同者求金额合计,制作出含客户编号、员工编号、合计金额的表。这正是图1的粒度本身。最后在(4)中,把这张表与员工表和客户表连接,补上员工名和客户名这些名称,图1就完成了。(4)写明「取得客户名和员工名」是决定性依据:(3)的表中必须同时保留客户编号和员工编号,否则无法取到名称。满足这一条件的只有ア。

  • 错误イ

    (2)的连接本身是正确的,但(3)只把客户编号作为汇总键,因此员工编号在汇总中被丢弃。结果得到的是「按客户分类」的合计表,没有按员工的明细。即便想在步骤(4)中与员工表连接以取得员工名,也因为作为连接线索的员工编号已不复存在而无法执行,更做不出图1那样同一客户000100按员工分成两行的形式。

  • 错误ウ

    与イ相反,(3)只把员工编号作为汇总键,因此客户编号丢失。得到的是「按员工分类」的合计表,没有按客户的明细。在步骤(4)中无法与客户表连接来取得客户名,也不满足题目要求的「按客户按员工分类」这一汇总粒度。

  • 错误エ

    步骤存在双重破绽。首先,(2)试图仅从明细表按客户编号与员工编号的组合进行汇总,但如图2所示,明细表中并不存在员工编号这一列,因此这个汇总本身就无法完成。其次,即便假设能够完成,汇总之后单据编号也会从表中消失,所以(3)中再按单据编号与(1)的表连接同样不可能。此外,先汇总再做上个月、已批准的筛选这一顺序,会把不属于对象范围的单据金额也混入合计之中。

ここがポイント
  • 关系数据库的基本操作——连接(join)、选择(selection)、投影(projection)的区分使用。要把分散在多张表中的列汇集到同一行,必须通过共有的列(这里是单据编号)进行连接,而汇总要在连接之后进行。
  • 汇总(分组)的键要与最终想输出的表的粒度一致。若是「按客户按员工分类」,键就是客户编号与员工编号的组合;未包含在汇总键中的列会从表中丢失,无法用于后续的连接。
用語
解答問99ア
练这一题

作答记录