ある月の“月末商品在庫”表と“当月商品出荷実績”表を使って、ビュー“商品別出荷実績”を定義した。このビューにSQL文を実行した結果の値はどれか。 月末商品在庫:商品コード, 商品名, 在庫数 S001, A, 100 / S002, B, 250 / S003, C, 300 / S004, D, 450 / S005, E, 200 当月商品出荷実績:商品コード, 商品出荷日, 出荷数 S001, 2017-03-01, 50 / S003, 2017-03-05, 150 / S001, 2017-03-10, 100 / S005, 2017-03-15, 100 / S005, 2017-03-20, 250 / S003, 2017-03-25, 150 [ビュー“商品別出荷実績”の定義] CREATE VIEW 商品別出荷実績(商品コード, 出荷実績数, 月末在庫数) AS SELECT 月末商品在庫.商品コード, SUM(出荷数), 在庫数 FROM 月末商品在庫 LEFT OUTER JOIN 当月商品出荷実績 ON 月末商品在庫.商品コード = 当月商品出荷実績.商品コード GROUP BY 月末商品在庫.商品コード, 在庫数 [SQL文] SELECT SUM(月末在庫数) AS 出荷商品在庫合計 FROM 商品別出荷実績 WHERE 出荷実績数 <= 300
月末商品在庫:
当月商品出荷実績:
| 商品コード | 商品名 | 在庫数 |
|---|---|---|
| S001 | A | 100 |
| S002 | B | 250 |
| S003 | C | 300 |
| S004 | D | 450 |
| S005 | E | 200 |
| 商品コード | 商品出荷日 | 出荷数 |
|---|---|---|
| S001 | 2017-03-01 | 50 |
| S003 | 2017-03-05 | 150 |
| S001 | 2017-03-10 | 100 |
| S005 | 2017-03-15 | 100 |
| S005 | 2017-03-20 | 250 |
| S003 | 2017-03-25 | 150 |
選択肢
- ア400
- イ500
- ウ600
- エ700
正解と解説
正解:ア 400
ビューは左外部結合で作られているため、出荷実績のない商品は出荷実績数がNULLになる。WHERE句の条件はNULLに対してunknownとなり行が選ばれないので、対象は出荷実績数150の商品と300の商品の2件だけとなる。それぞれの月末在庫数100と300を合計して400になる。
選択肢ごとの解説
- ア正しい。条件を満たすのは在庫数100と300の2商品で、合計は400である。
- イ出荷実績数がNULLの商品を条件に含めてしまった場合の値になる。
- ウ対象商品の選び方が誤っている。
- エ出荷実績数が300を超える商品まで含めてしまった場合の値になる。
同じ分野の他の問題
- "従業員"表から、男女それぞれの最年長従業員を除く全ての従業員を取り出すSQL文とするために、aに入れる字句はどれか。こ…2024年度 秋期 午前II 問10
- 表Aと表Bから、どちらか一方にだけ含まれるIDを得るSQL文のaに入れる字句はどれか。 〔SQL文〕 SELECT CO…2023年度 秋期 午前II 問10
- "社員"表から、男女それぞれの最年長社員を除く全ての社員を取り出すSQL文とするために、aに入れる字句はどれか。ここで、…2022年度 秋期 午前II 問12
- "文書"表、"社員"表から結果を得るSQL文のaに入れる字句はどれか。2022年度 秋期 午前II 問6
- "社員取得資格"表に対し、SQL文を実行して結果を得た。SQL文のaに入れる字句はどれか。 社員取得資格(社員コード,資…2021年度 秋期 午前II 問8
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。