関係データベースで管理された“商品”表,“売上”表から売上日が5月中で,かつ,商品ごとの合計額が20,000円以上になっている商品だけを全て挙げたものはどれか。
商品(商品コード/商品名/単価(円)):0001/商品A/2,000,0002/商品B/4,000,0003/商品C/7,000,0004/商品D/10,000
売上(売上番号/商品コード/個数/売上日/配達日):Z00001/0004/3/4/30/5/2,Z00002/0001/3/4/30/5/3,Z00005/0003/3/5/15/5/17,Z00006/0001/5/5/15/5/18,Z00003/0002/3/5/5/5/18,Z00004/0001/4/5/10/5/20,Z00007/0002/3/5/30/6/2,Z00008/0003/1/6/8/6/10
正答3
解説
正解は3です。
この問題は、“商品”表と“売上”表から、売上日が5月中で、商品ごとの合計額が20,000円以上の商品を求める問題です。
まず売上日が5月1日から5月31日の売上だけを取り出し、商品ごとに個数を合計して単価を掛けます。
配達日ではなく売上日で判断することに注意します。
【計算】
売上日が5月中の売上は、Z00005、Z00006、Z00003、Z00004、Z00007の5件です。
Z00001とZ00002は売上日が4月30日、Z00008は売上日が6月8日なので、対象外です。
商品A(単価2,000円)は、Z00006の5個とZ00004の4個で合計9個です。
商品Aの合計額=2,000円×9=18,000円で、20,000円未満です。
商品B(単価4,000円)は、Z00003の3個とZ00007の3個で合計6個です。
商品Bの合計額=4,000円×6=24,000円で、20,000円以上です。
商品C(単価7,000円)は、Z00005の3個です。
商品Cの合計額=7,000円×3=21,000円で、20,000円以上です。
商品Dは、売上日が5月中の売上がないので0円です。
【選択肢別解説】
1:× 商品Aの5月中の合計額は18,000円で、20,000円に届きません。
売上日が4月30日のZ00002(3個)を含めると24,000円になりますが、5月中の売上ではありません。
2:× 商品Aは18,000円で条件を満たしません。
商品Dも、売上日が4月30日のZ00001だけで、5月中の売上はありません。
3:○ 5月中の合計額が20,000円以上になるのは、商品B(24,000円)と商品C(21,000円)です。
4:× 商品Cだけでなく、商品Bも合計額24,000円で条件を満たします。
Z00007は配達日が6月2日ですが、売上日は5月30日なので対象に含めます。
【ポイント】
表の問題では、条件に使う列(ここでは売上日)を正確に見極めることが大切です。
この処理は、SQLでは売上日で絞り込み、商品ごとにグループ化して合計額で条件を付ける集計に当たります。