無効データ削除
配点 : 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の関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

社員テーブル(EMP)の整理のために、毎月末に該当月に無効となった社員を社員無効テーブル(EMP_INVALID)にその時点の内容を複写している。また、半年毎に社員無効テーブルに複写されたデータを社員テーブルより削除する運用を実施している。

社員テーブルから、社員無効テーブルに存在するデータを削除しなさい。ただし、一度無効になって社員無効テーブルに作成されてから、社員テーブルで有効(VALID_FLG='1')に変更になった社員は削除の対象外とする。

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


テーブル定義

テーブル名: EMP

主キー 列名 データ型 必須 デフォルト値
✔︎ EMP_CODE VARCHAR(10) ✔︎ NULL
EMP_LAST_NAME VARCHAR(50) ✔︎ NULL
EMP_FIRST_NAME VARCHAR(50) ✔︎ NULL
EMP_KANA_NAME VARCHAR(50) NULL
EMP_ENG_NAME VARCHAR(50) NULL
EMAIL_ACCOUNT VARCHAR(50) NULL
DEPT_CODE VARCHAR(10) ✔︎ NULL
VALID_FLG VARCHAR(1) ✔︎ '1'
UPDATE_USER_NAME VARCHAR(50) NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

テーブル名: EMP_INVALID

主キー 列名 データ型 必須 デフォルト値
✔︎ EMP_CODE VARCHAR(10) ✔︎ NULL
EMP_LAST_NAME VARCHAR(50) ✔︎ NULL
EMP_FIRST_NAME VARCHAR(50) ✔︎ NULL
EMP_KANA_NAME VARCHAR(50) NULL
EMP_ENG_NAME VARCHAR(50) NULL
EMAIL_ACCOUNT VARCHAR(50) NULL
DEPT_CODE VARCHAR(10) ✔︎ NULL
VALID_FLG VARCHAR(1) ✔︎ NULL
UPDATE_USER_NAME VARCHAR(50) NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

サンプルデータ

テーブル名: EMP

EMP_CODE EMP_LAST_NAME EMP_FIRST_NAME EMP_KANA_NAME EMP_ENG_NAME EMAIL_ACCOUNT DEPT_CODE VALID_FLG UPDATE_USER_NAME USER_UPDATE_DATETIME
10000 山田 秀行 ヤマダヒデユキ Hideyuki Yamada 10000@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10001 佐々木 さくや ササキサクヤ Sakuya Sasaki 10001@test.jp 000 1 SYSTEM 2020-02-22 22:22:22
10002 高山 慎介 タカヤマシンスケ Shinsuke Takayama 10002@test.jp 200 0 SYSTEM 2020-02-22 22:22:22
10003 西倉 清一郎 ニシクラセイイチロウ Seiichiro Nishikura 10003@test.jp 100 0 SYSTEM 2020-02-22 22:22:22
10004 千島 大志 チシマタイシ Taishi Chishima 10004@test.jp 120 1 SYSTEM 2020-02-22 22:22:22
10005 山谷 健悟 ヤマヤケンゴ Kengo Yamaya 10005@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10006 小山 新吾 コヤマシンゴ Koyama Singo 10006@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10007 小湊 亮治 コミナトリョウジ Ryouji Kominato 10007@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10008 山崎 喜一郎 ヤマザキイチロウ Ichiro Yamazaki 10008@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10009 大和 啓史 ヤマトタカフミ Takafumi Yamato 10009@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10010 西倉 一郎 ニシクライチロウ Ichiro Nishikura 10010@test.jp 111 1 SYSTEM 2020-02-22 22:22:22

テーブル名: EMP_INVALID

EMP_CODE EMP_LAST_NAME EMP_FIRST_NAME EMP_KANA_NAME EMP_ENG_NAME EMAIL_ACCOUNT DEPT_CODE VALID_FLG UPDATE_USER_NAME USER_UPDATE_DATETIME
10002 高山 慎介 タカヤマシンスケ Shinsuke Takayama 10002@test.jp 200 0 SYSTEM 2020-02-22 22:22:22
10003 西倉 清一郎 ニシクラセイイチロウ Seiichiro Nishikura 10003@test.jp 100 0 SYSTEM 2020-02-22 22:22:22
10004 千島 大志 チシマタイシ Taishi Chishima 10004@test.jp 120 0 SYSTEM 2020-02-22 22:22:22
Sorry, Japanese Only.