| 部品ID | 発注点 |
|---|---|
| P01 | 100 |
| P02 | 150 |
| P03 | 100 |
| 部品ID | 倉庫ID | 在庫数 |
|---|---|---|
| P01 | W01 | 90 |
| P01 | W02 | 90 |
| P02 | W01 | 150 |
| 部品ID | 発注要否 |
|---|---|
| P01 | 不要 |
| P02 | 不要 |
| P03 | 必要 |
応用情報技術者試験 令和6年度春期 午前 問26「“部品”表及び“在庫”表に対し,SQL 文を実行して結果を得た。SQL 文の a…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約51%です。
ウ. COALESCE(SUM(在庫.在庫数), 0)
正答率 51.4%(1,322人中 680人が正解)
結果から、各部品の全倉庫の在庫数の合計が発注点を下回る(発注点>合計在庫数)とき「必要」となるロジックを読み取る。P01は90+90=180で発注点100以下なので不要、P02は150で発注点150以下なので不要、P03は在庫がなく合計0で発注点100を下回るため必要、と結果に一致する。よって複数倉庫の在庫を合算するSUMを使い、さらにP03のように在庫レコードが無く合計がNULLになる場合に0として扱うため COALESCE(SUM(在庫.在庫数), 0) が正しく、ウが正解である。
応用情報技術者試験 令和6年度春期 午前 の過去問一覧に戻る・問26