在庫整理
配点 : 10点難易度 : 1
制限実行時間 : 1000ms制限メモリ使用量 : 128 MB
SQLiteの注意点

TOPSIC SQLでは、SQLの実行環境にSQLiteを使用しています。SQLite以外のRDBMSの文法を使用することはできません。
問題を解く際に注意すべきSQLiteの制約について、以下に記載してありますのでご確認下さい。

  1. NUMERIC、INTEGER、REALは、自身のクラスへの変換が推奨されていますが、変換できなかった場合でも、そのまま格納されます。
  2. 新しくデータを追加した場合、既に格納されているデータの中で ROWID の値が最大のものを探し、それに1を加えた値が新しく追加されるデータの ROWID の値として保存されます。
  3. 外部結合は、左外部結合を行う LEFT OUTER JOIN 句のみ使用できます。
    ※2022年12月以降、LEFT / RIGHT / FULL OUTER JOIN が使用可能となりました。
  4. 指定した日付と時刻のタイムゾーンはUTCとして扱われます。
  5. 日付関数や文字列関数については、SQLiteで固有の関数があります。
  6. テーブル項目の論理名が「◯◯日」となっている場合は、日付項目の時分秒は設定されていません。論理名が「◯◯日時」となっている場合は、日付項目の時分秒まで設定されています。
    • 「受注日」の場合は「2021-01-01」
    • 「受注日時」の場合は「2021-01-01 15:15:15」

その他のSQLiteの制約については、SQLiteの公式ドキュメントをご確認ください。
また、ER図の読み方やSQLiteの関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

在庫データを整理することとなった。在庫テーブル(STOCK)から、最終出荷日(LAST_DELIVERY_DATE)が2023年1月1日から2023年1月31日の期間内で、かつ、実在庫数(ACTUAL_AMT)がゼロのデータを削除しなさい。

ER図 (半角:物理名、全角:論理名)


テーブル定義

テーブル名: STOCK

主キー 列名 データ型 必須 デフォルト値
✔︎ WH_CODE VARCHAR ✔︎ NULL
✔︎ ITEM_CODE VARCHAR ✔︎ NULL
✔︎ STOCK_TYPE VARCHAR ✔︎ '1'
✔︎ QUALITY_TYPE VARCHAR ✔︎ 'G'
ACTUAL_AMT INTEGER ✔︎ 1
VALID_AMT INTEGER ✔︎ 1
LAST_DELIVERY_DATE VARCHAR NULL
UPDATE_USER_NAME VARCHAR NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

サンプルデータ

テーブル名: STOCK

WH_CODE ITEM_CODE STOCK_TYPE QUALITY_TYPE ACTUAL_AMT VALID_AMT LAST_DELIVERY_DATE UPDATE_USER_NAME USER_UPDATE_DATETIME
W100 P001 1 G 10 10 2023-05-01 SYSTEM 2024-01-30 01:01:01
W100 P002 1 G 0 0 2023-01-31 SYSTEM 2024-01-30 01:01:01
W100 P003 1 G 23 23 2022-11-30 SYSTEM 2024-01-30 01:01:01
W100 P004 1 G 0 0 2023-01-01 SYSTEM 2024-01-30 01:01:01
W100 P006 1 G 0 0 2022-12-31 SYSTEM 2024-01-30 01:01:01
W100 P007 1 G 0 0 2023-02-01 SYSTEM 2024-01-30 01:01:01
W100 P010 1 G 3 3 2023-01-10 SYSTEM 2024-01-30 01:01:01
W200 P001 1 G 40 40 NULL SYSTEM 2024-01-30 01:01:01
W200 P003 1 G 0 0 2022-11-30 SYSTEM 2024-01-30 01:01:01
W300 P002 1 G 1 1 NULL SYSTEM 2024-01-30 01:01:01
W300 P007 1 G 0 0 2022-12-02 SYSTEM 2024-01-30 01:01:01

Sorry, Japanese Only.