応用情報技術者試験 過去問 2011年(平成23年) 秋期 午後 問6

旅費交通費精算のシステム化

K社は中堅の食品製造会社で、ここ数年急速に売上を伸ばしている。販売力強化のために営業社員も増員を続けているので、伝票によって手作業で行っている旅費交通費の精算処理をシステム化することにした。

システムの設計に当たり、図1に示す現行の申請書を参考にした。

K社の旅費交通費精算申請書
図1 K社の旅費交通費精算申請書

旅費交通費精算に関する規定

K社における旅費交通費精算に関する規定の一部を次に示す。

  • 交通費及びホテルの費用は実費で請求する。
  • タクシー、航空機及びホテルの費用の精算の際は、申請書に合わせて証憑を提出する。証憑とは、領収書や搭乗券など実際に利用したことを証明するものである。
  • 出張時は、出発日から帰着日までの各日に日当がつく。日当は、出張時の職位によって表1に従い請求する。
  • 旅費交通費の申請は、申請時の組織名で行う。
  • 旅費交通費の申請は、費用の発生日から1か月以内に行う。
表1 出張時の日当
職位 金額(円)
係長以下 2,500
課長以上 3,500

旅費交通費精算システムのデータベース設計

設計中のE-R図を図2に、テーブル構造を表2に示す。データベース設計に関する仕様の一部を次に示す。

  • 申請書テーブルや申請明細テーブルにおける申請書番号は、申請書ごとに付与される一意の番号である。
  • 申請明細テーブルの明細行番号は、申請書内の明細順に振られる番号である。
  • 費用種別テーブルの内容を表3に示す。証憑フラグは、証憑を必要とする場合は'Y'、不要な場合は'N'である。
  • 組織の追加や名称の変更があった場合は、新たに組織コードを割り当てて組織テーブルに追加する。
旅費交通費精算システムのE-R図(作成途中)
図2 旅費交通費精算システムのE-R図(作成途中)
表2 テーブル構造(作成途中)
テーブル名 列名
申請書 申請書番号,申請日,社員コード,組織コード
申請明細 申請書番号,明細行番号,日付,用件用途,費用種別コード,出発地,到着地,往復フラグ,金額
費用種別 費用種別コード,費用種別名,証憑フラグ
社員 社員コード,社員名,組織コード,職位コード
組織 組織コード,組織名
職位 職位コード,職位名
注記:下線は主キーを示す。
表3 費用種別テーブル
費用種別コード 費用種別名 証憑フラグ
01 鉄道・バス N
02 タクシー Y
03 新幹線 N
04 航空機 Y
05 ホテル Y
06 日当 N

証憑提出用の台紙の印刷

証憑を提出する際は、システムから台紙を印刷し、それに証憑を貼り付けて提出する。台紙には、申請書番号,組織名,氏名の他に,証憑を必要とする明細行番号,日付,費用種別名及び金額を印字する。

指定された申請書番号から、証憑を必要とする明細行を取り出すSQL文を図3に示す。ここで、図3のSQL文において":申請書番号"は対象となる申請書番号を表す埋込み変数である。

SELECT 明細行番号,日付,費用種別.費用種別名,金額
FROM 申請明細 INNER JOIN 費用種別
  ON c
WHERE 申請明細.申請書番号 = :申請書番号 AND d
ORDER BY 明細行番号
図3 証憑を必要とする明細行を取り出すSQL文

組織ごとの旅費交通費集計

各組織における1か月間の旅費交通費の合計を集計レポートを出力する。集計は、社員が申請時に所属していた組織を基準にして行う。レポートには、組織コード,組織名及びその月の旅費交通費(日当を含む)の合計を印字する。組織ごとのレポートに必要なデータを取り出すSQL文を図4に示す。ここで、図4のSQL文において":指定月開始日",":指定月終了日"は,それぞれレポートの出力対象となる年月の開始日,終了日を表す埋込み変数である。レポートは組織コードの昇順に出力する。

SELECT 申請書.組織コード,組織.組織名,
      e(申請明細.金額)AS 組織交通費合計
FROM 申請書,申請明細,組織
WHERE 申請明細.日付 f :指定月開始日 AND :指定月終了日
  AND 申請書.申請書番号 = 申請明細.申請書番号
  AND 申請書.組織コード = 組織.組織コード
GROUP BY 申請書.組織コード,組織.組織名
g
図4 組織ごとのレポートに必要なデータを取り出すSQL文
出典:平成23年度 秋期 応用情報技術者試験 午後 問6