データ整理
配点 : 20点難易度 : 2
制限実行時間 : 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の関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

データ整理のため、過去の受注データ(ORDERS)、受注データ明細(ORDERS_DTL)を削除することになった。受注日(ORDER_DATE)が2010年1月1日から2010年12月31日までの受注データとそれに紐付く受注データ明細を削除しなさい。

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


テーブル定義

テーブル名: ORDERS

主キー 列名 データ型 必須 デフォルト値
✔︎ ORDER_NO VARCHAR ✔︎ NULL
ORDER_DATE VARCHAR ✔︎ NULL
DEPT_CODE VARCHAR ✔︎ NULL
CUST_CODE VARCHAR ✔︎ NULL
EMP_CODE VARCHAR ✔︎ NULL
REQUIRED_DATE VARCHAR NULL
CUSTORDER_NO VARCHAR NULL
WH_CODE VARCHAR ✔︎ NULL
ORDER_AMNT INTEGER ✔︎ 0
CMP_TAX INTEGER ✔︎ 0
SLIP_COMMENT VARCHAR NULL
UPDATE_USER_NAME VARCHAR NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

テーブル名: ORDERS_DTL

主キー 列名 データ型 必須 デフォルト値
✔︎ ORDER_NO VARCHAR ✔︎ NULL
✔︎ LINE_NO INTEGER ✔︎ NULL
ITEM_CODE VARCHAR ✔︎ NULL
UNITPRICE INTEGER ✔︎ 0
ORDER_QTY INTEGER ✔︎ 1
CMP_TAX_RATE INTEGER NULL
RESERVE_QTY INTEGER 0
DELIVERY_ORDER_QTY INTEGER 0
DELIVERED_QTY INTEGER 0
COMPLETE_FLG INTEGER ✔︎ 0
DISCOUNT INTEGER ✔︎ 0
DELIVERY_DATE VARCHAR NULL
UPDATE_USER_NAME VARCHAR NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

サンプルデータ

テーブル名: ORDERS

ORDER_NO ORDER_DATE DEPT_CODE CUST_CODE EMP_CODE REQUIRED_DATE CUSTORDER_NO WH_CODE ORDER_AMNT CMP_TAX SLIP_COMMENT UPDATE_USER_NAME USER_UPDATE_DATETIME
OD4001 2009-12-31 D100 C1001 E002 NULL NULL 300 18000 1800 NULL SYSTEM 2024-07-30 01:01:01
OD4002 2010-01-01 D200 C1001 E003 NULL NULL 200 137800 13780 NULL SYSTEM 2024-07-30 01:01:01
OD4003 2010-01-02 D200 C1001 E002 NULL NULL 100 91800 9180 NULL SYSTEM 2024-07-30 01:01:01
OD4004 2010-02-03 D100 C1001 E002 NULL NULL 100 25000 2500 NULL SYSTEM 2024-07-30 01:01:01
OD4005 2010-03-04 D100 C1001 E001 NULL NULL 100 26400 2640 NULL SYSTEM 2024-07-30 01:01:01
OD4006 2010-04-05 D200 C1001 E002 NULL NULL 300 24000 2400 NULL SYSTEM 2024-07-30 01:01:01
OD4007 2010-05-06 D300 C1001 E001 NULL NULL 300 24000 2400 NULL SYSTEM 2024-07-30 01:01:01
OD4008 2010-06-07 D100 C1002 E003 NULL NULL 100 18000 1800 NULL SYSTEM 2024-07-30 01:01:01
OD4009 2010-07-08 D100 C1002 E002 NULL NULL 200 43000 4300 NULL SYSTEM 2024-07-30 01:01:01
OD4010 2010-10-09 D100 C1002 E003 NULL NULL 200 60000 6000 NULL SYSTEM 2024-07-30 01:01:01
OD4011 2010-11-10 D100 C1002 E002 NULL NULL 100 54000 5400 NULL SYSTEM 2024-07-30 01:01:01
OD4012 2010-12-30 D100 C1003 E002 NULL NULL 200 34800 3480 NULL SYSTEM 2024-07-30 01:01:01
OD4013 2010-12-31 D200 C1003 E003 NULL NULL 100 96000 9600 NULL SYSTEM 2024-07-30 01:01:01
OD4014 2011-01-01 D300 C1003 E002 NULL NULL 200 36000 3600 NULL SYSTEM 2024-07-30 01:01:01
OD4015 2011-01-02 D200 C1003 E003 NULL NULL 200 18000 1800 NULL SYSTEM 2024-07-30 01:01:01
OD5016 2012-01-01 D200 C1003 E002 NULL NULL 100 24000 2400 NULL SYSTEM 2024-07-30 01:01:01
OD6017 2013-01-01 D100 C1004 E002 NULL NULL 100 117600 11760 NULL SYSTEM 2024-07-30 01:01:01

テーブル名: ORDERS_DTL

ORDER_NO LINE_NO ITEM_CODE UNITPRICE ORDER_QTY CMP_TAX_RATE RESERVE_QTY DELIVERY_ORDER_QTY DELIVERED_QTY COMPLETE_FLG DISCOUNT DELIVERY_DATE UPDATE_USER_NAME USER_UPDATE_DATETIME
OD4001 1 P009 1800 10 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4002 1 P001 1000 10 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4002 2 P006 1800 51 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4002 3 P009 1800 20 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4003 1 P009 1800 51 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4004 1 P001 1000 25 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4005 1 P002 1200 22 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4006 1 P005 1200 20 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4007 1 P002 1200 20 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4008 1 P006 1800 10 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4009 1 P001 1000 25 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4009 2 P009 1800 10 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4010 1 P002 1200 50 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4011 1 P009 1800 30 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4012 1 P002 1200 29 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4013 1 P006 1800 40 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4013 2 P003 1200 20 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4014 1 P005 1200 30 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD4015 1 P009 1800 10 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD5016 1 P005 1200 20 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01
OD6017 1 P008 2400 49 10 0 0 0 0 0 NULL SYSTEM 2024-07-30 01:01:01

Sorry, Japanese Only.