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

問題

受注テーブル(TBL_ORDERS)がある、このテーブルには、受注日(ORDER_DATE)の日付がYYYY-MM-DD形式で格納されいる。各受注日から月日(MM-DD部分)を抽出して表示しなさい。

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

  • ORDER_NO
  • 月日を抽出した値 → ORDER_DATE

表示順

  1. ORDER_NOの降順

表示フォーマット

※あくまでフォーマットを示すもので、正解例ではありません。行数も正解とは異なります。

ORDER_NO ORDER_DATE
D0107 12-31
D0106 11-11
D0105 11-01
D0104 10-10
D0103 09-10

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


テーブル定義

テーブル名: TBL_ORDERS

主キー 列名 データ型 必須 デフォルト値
✔︎ ORDER_NO VARCHAR ✔︎ NULL
ORDER_DATE VARCHAR ✔︎ NULL
DEPT_CODE INTEGER ✔︎ NULL
CUST_CODE INTEGER ✔︎ NULL
ORDER_AMT INTEGER ✔︎ 0

サンプルデータ

テーブル名: TBL_ORDERS

ORDER_NO ORDER_DATE DEPT_CODE CUST_CODE ORDER_AMT
D0100 2024-07-01 500 123 10000
D0101 2024-07-02 200 345 3300
D0102 2024-07-01 300 444 45000
D0103 2024-09-10 600 567 27000
D0104 2024-10-10 900 789 33000
D0105 2024-11-01 700 789 11000
D0106 2024-11-11 500 222 34000
D0107 2024-12-31 100 123 22000

Sorry, Japanese Only.