従業員と部署の一覧
配点 : 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の関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

従業員テーブル(TBL_EMPLOYEES)と部署テーブル(TBL_DEPT)から従業員と部署の一覧を表示しなさい。
従業員テーブルのDEPT_CODEが、部署テーブルに存在しない場合は従業員テーブルの情報のみを表示し、部署テーブルのDEPT_CODEが従業員テーブルに存在しない場合は、部署テーブルの情報のみ表示すること。

表示項目は以下とする。

  • EMP_CODE
  • EMP_NAME
  • 部署テーブルのDEPT_CODE
  • DEPT_NAME

表示順

  1. EMP_CODEの昇順
  2. DEPT_CODEの昇順

表示フォーマット

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

EMP_CODE EMP_NAME DEPT_CODE DEPT_NAME
NULL NULL 70 企画室
1 堀井 清太郎 10 技術部
2 石村 花菜 20 人事部
3 北島 瑠奈 30 総務部
4 室井 友里 NULL NULL

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


テーブル定義

テーブル名: TBL_DEPT

主キー 列名 データ型 必須 デフォルト値
✔︎ DEPT_CODE NUMBER ✔︎ NULL
DEPT_NAME VARCHAR NULL

テーブル名: TBL_EMPLOYEES

主キー 列名 データ型 必須 デフォルト値
✔︎ EMP_CODE NUMBER ✔︎ NULL
EMP_NAME VARCHAR NULL
KANA VARCHAR NULL
GENDER VARCHAR NULL
BIRTHDAY VARCHAR NULL

サンプルデータ

テーブル名: TBL_DEPT

DEPT_CODE DEPT_NAME
10 技術部
20 人事部
30 総務部
40 経理部
70 企画室

テーブル名: TBL_EMPLOYEES

EMP_CODE EMP_NAME KANA GENDER AGE DEPT_CODE
1 堀井 清太郎 ホリイ セイタロウ M 40 10
2 石村 花菜 イシムラ ハナ F 33 20
3 北島 瑠奈 キタジマ ルナ F 45 30
4 室井 友里 ムロイ ユリ F 27 50
5 北沢 愛香 キタザワ アイカ F 33 40
6 三谷 孝吉 ミタニ コウキチ M 23 20

Sorry, Japanese Only.