2010年 秋期 応用情報技術者試験 問6

販売管理システムに関する次の記述を読んで、設問1〜4に答えよ。

L社は、焼酎を製造販売する酒造会社である。L社では顧客である小売店との取引管理に販売管理システム(以下、本システムという)を利用している。

〔請求締め業務〕

請求額は、前月度の請求額、今月度(前月21日から今月20日まで)の入金額及び今月度の買上額を基に算出する。請求額がマイナスの場合は、預り金が発生していることを示す。本システムによる請求書発行処理は毎月25日20時に実行され、顧客ごとに請求書が発行される。請求書の例を図1に示す。

図1 請求書の例
請求書番号12125請求書(2010年10月度)発行日2010-10-25
M 商店 N 支店 御中株式会社 L 社
下記のとおりご請求申し上げます。
前月度ご請求額340,000円
今月度ご入金額450,000円
今月度お買上額350,000円
今月度ご請求額240,000円

注 今月度ご請求額 = 前月度ご請求額 - 今月度ご入金額 + 今月度お買上額

〔入金消込み業務〕

担当者は顧客からの入金を確認する都度、本システムによって、支払がされていない請求にこの入金を割り当てて入金消込み処理を行う。

本システムでは、1回の請求に対して複数回に分けて入金することが可能であり、複数の請求に対する支払を1回の入金で行うことも可能である。入金で余りが発生した場合は、次回の請求締め業務で精算する。また、入金は本システムが付与する入金番号によって一意に特定できる。

〔本システムのE-R図〕

本システムのE-R図を図2に示す。請求レコードは、請求締め業務の中で作成される。"請求"エンティティの"消込額"は、ある請求に対して、入金によって消し込まれた総額である。また、"入金"エンティティの"消込額"は、ある入金に対して請求への消込みに充てた総額である。

本システムでは、E-R図のエンティティ名を表名、属性名を列名にして、適切なデータ型で表定義した関係データベースによって、データを管理する。例として、請求テーブルを作成するCREATE文を図3に示す。

注 属性名の実線の下線____は主キー、破線の下線....は外部キーを示す。主キーの実線が付いている属性名には、外部キーの破線を付けない。
CREATE TABLE 請求
(
e CHAR(5),
顧客番号 CHAR(5), 請求日 CHAR(8), 計上年月 CHAR(6), 請求額 NUMERIC(10),
買上額 NUMERIC(10), 消込額 NUMERIC(10),
f(e),
FOREIGN KEY ( 顧客番号 ) REFERENCES 顧客 (g))

〔入金消込み処理〕

本システムの入金消込み処理では、1回の入金に対して、図4の流れ図に従い、古い請求から順に消込みを行う。請求への消込みは、入金額が請求への消込みにすべて充てられるか、又は、支払が残っている請求がなくなるまで繰り返す。

注 (1) c, dには、図2のc, dの属性名が入る。

(2) 入金レコード型は入金テーブルの全属性を保持するデータ型。請求レコード型は請求テーブルの全属性を保持するデータ型。入金消込レコード型は入金消込テーブルの全属性を保持するデータ型である。

(3) 配列の添え字は0から始まるものとし、要素の個数は"配列名.length"で参照する。

(4) xは入金の消込み可能な残額を示す。

(5) yは請求の消し込まれていない残額を示す。

今月度の請求締め業務が終了すると、顧客の中には預り金が発生している場合がある。今月度の末日時点で預り金の発生している顧客の顧客番号と預り金額の一覧を求めるためのSQL文を図5に示す。図5中のjに入れる適切な字句を答え、SELECT文を完成させよ。

なお、ホスト変数として":今月度末日"が定義されているものとする。

SELECT 顧客番号, j
FROM 入金
WHERE k
AND 
GROUP BY 顧客番号
図5 預り金の発生している顧客の顧客番号と預り金額の一覧を求めるためのSQL文
出典:平成22年度 秋期 応用情報技術者試験 午後問題 問6