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

選択肢
- アSELECT SUM(金額) AS 残高 FROM 勘定, 移動, 会計取引 WHERE 勘定.勘定科目 = 移動.勘定科目 AND 会計取引.取引番号 = 移動.取引番号 AND 勘定.勘定科目 = '現金' AND 取引日 <= '2017-04-30'
- イSELECT 期首残高 + SUM(金額) AS 残高 FROM 勘定, 移動, 会計取引 WHERE 勘定.勘定科目 = 移動.勘定科目 AND 会計取引.取引番号 = 移動.取引番号 AND 勘定.勘定科目 = '現金' AND 取引日 <= '2017-04-30' GROUP BY 勘定.勘定科目, 期首残高
- ウSELECT 残高 FROM 勘定, 移動, 会計取引 WHERE 勘定.勘定科目 = '現金' AND 取引日 <= '2017-04-30'
- エSELECT 残高 FROM 勘定, 移動, 会計取引 WHERE 勘定.勘定科目 = 移動.勘定科目 AND 勘定.勘定科目 = '現金' AND 取引日 <= '2017-04-30'
正解と解説
正解:イ SELECT 期首残高 + SUM(金額) AS 残高 FROM 勘定, 移動, 会計取引 WHERE 勘定.勘定科目 = 移動.勘定科目 AND 会計取引.取引番号 = 移動.取引番号 AND 勘定.勘定科目 = '現金' AND 取引日 <= '2017-04-30' GROUP BY 勘定.勘定科目, 期首残高
このモデルでは残高は導出属性であり、期首残高に当期の移動金額の合計を足して求める。したがって勘定・移動・会計取引を結合し、勘定科目と取引日で絞り込んだ上で金額を合計し、期首残高に加算する必要がある。集計と非集計の列を併記するため、勘定科目と期首残高でのGROUP BYも欠かせない。
選択肢ごとの解説
- ア移動金額の合計だけで期首残高を加算していないため、残高にならない。
- イ正しい。期首残高に期間内の移動金額の合計を加え、GROUP BYも適切に指定している。
- ウ残高は表に格納された列ではなく導出属性であり、結合条件も欠けている。
- エ同じく残高列は存在せず、会計取引との結合条件も欠けている。
同じ分野の他の問題
- 従業員の、従業員番号、氏名及び使用できるプログラム言語を管理するために、"従業員"表及び"プログラム言語"表を設計する。…2025年度 秋期 午前II 問4
- UMLを用いて表した商品と倉庫のデータモデルに関する記述のうち、適切なものはどれか。ここで、商品の倉庫間の移動はないもの…2025年度 秋期 午前II 問3
- 概念データモデルの説明として、最も適切なものはどれか。2023年度 秋期 午前II 問3
- 階層構造をもつ組織と、従業員の組織への所属を表すUMLのクラス図のうち、"従業員は組織階層中のどの組織にも所属できるが、…2024年度 秋期 午前II 問6
- あるエンティティを関係データベース上に実装しようとしたとき、その主キーが多くの属性から構成される複合キーとなることが分か…2024年度 秋期 午前II 問5
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。