図のデータモデルは会計取引の仕訳を表現している。“移動”がリンクする“勘定”の残高を増やす場合は金額の符号を正に、減らす場合は負にすることで、貸借平均の原理を表現する。このモデルに基づき、“勘定”表、“会計取引”表、“移動”表を定義した。勘定科目“現金”の2017年4月30日における残高を導出するためのSQL文はどれか。ここで、モデルの表記にはUMLを用い、表中の実線の下線は主キーを表す。また、“会計取引”表には今期分のデータだけが保持される。 勘定(勘定科目, 期首残高) 会計取引(取引番号, 取引日) 移動(勘定科目, 取引番号, 金額)

導出される残高は期首残高+期間内の移動金額合計で求める

データベーススペシャリスト試験2017年度 春期 午前II2/データモデリング / 属性

UMLクラス図。「勘定」(属性:勘定科目、期首残高、/残高)と「会計取引」(属性:取引番号、取引日)の間に「移動」(属性:金額)という関連クラスが存在。「勘定」側の多重度は2..*、「会計取引」側の多重度は*。注記:「制約:一つの会計取引につながる移動の金額の和はゼロであること。」
UMLクラス図。「勘定」(属性:勘定科目、期首残高、/残高)と「会計取引」(属性:取引番号、取引日)の間に「移動」(属性:金額)という関連クラスが存在。「勘定」側の多重度は2..*、「会計取引」側の多重度は*。注記:「制約:一つの会計取引につながる移動の金額の和はゼロであること。」

選択肢

正解と解説

正解: SELECT 期首残高 + SUM(金額) AS 残高 FROM 勘定, 移動, 会計取引 WHERE 勘定.勘定科目 = 移動.勘定科目 AND 会計取引.取引番号 = 移動.取引番号 AND 勘定.勘定科目 = '現金' AND 取引日 <= '2017-04-30' GROUP BY 勘定.勘定科目, 期首残高

このモデルでは残高は導出属性であり、期首残高に当期の移動金額の合計を足して求める。したがって勘定・移動・会計取引を結合し、勘定科目と取引日で絞り込んだ上で金額を合計し、期首残高に加算する必要がある。集計と非集計の列を併記するため、勘定科目と期首残高でのGROUP BYも欠かせない。

選択肢ごとの解説

出典:平成29年度 春期 データベーススペシャリスト試験 午前II 問2(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。