
問題1:CASE演算子を使ってみよう!
CASE文を使って家計簿テーブルの費目を「固定費」と「変動費」に振り分けましょう。
給料に関しては「その他」にしましょう。
期待する画面を参考に作成してください。
※初級問題を実施していない場合ははじめに指定のコードを実行し
2つのテーブルを作成しましょう。
給料に関しては「その他」にしましょう。
期待する画面を参考に作成してください。
※初級問題を実施していない場合ははじめに指定のコードを実行し
2つのテーブルを作成しましょう。
あらかじめエディタに書くコード
USE ninjacode;
-- 家計簿テーブルの作成
CREATE TABLE 家計簿 (日付 INT, 費目 VARCHAR(20), 収入 INT, 支出 INT, 詳細 VARCHAR(255));
INSERT INTO 家計簿
(日付, 費目, 収入, 支出, 詳細)
VALUES
(20221205, '家賃', 0, 80000, '10月の家賃'),
(20221205, '光熱費', 0, 10000, '10月の電気代'),
(20221210, '交際費', 0, 6000, '会社の飲み会'),
(20221216, '食費', 0, 1400, 'ランチ'),
(20221224, '娯楽費', 0, 8000, 'テーマパークへ行った'),
(20221225, '給料', 250000, 0, '11月の給料'),
(20221226, '食費', 0, 400, 'コーヒー購入'),
(20221227, '娯楽費', 0, 15000, '温泉旅行'),
(20221228, '娯楽費', 0, 1400, '書籍購入');
-- 家計簿_過去分テーブルの作成
CREATE TABLE 家計簿_過去分 (日付 INT, 費目 VARCHAR(20), 収入 INT, 支出 INT, 詳細 VARCHAR(255));
INSERT INTO 家計簿_過去分
(日付, 費目, 収入, 支出, 詳細)
VALUES
(20221105, '家賃', 0, 80000, '9月の家賃'),
(20221105, '光熱費', 0, 15000, '9月の電気代'),
(20221108, '食費', 0, 1000, 'ランチ'),
(20221115, '食費', 0, 1400, 'ランチ'),
(20221120, '交際費', 0, 25000, '友人と温泉旅行'),
(20221122, '娯楽費', 0, 1400, '書籍購入'),
(20221125, '給料', 250000, 0, '10月分');
-- 各テーブルの確認
-- SELECT * FROM 家計簿_過去分;
-- SELECT * FROM 家計簿;
¥SQL¥
期待する画面

解答ソースコード
USE ninjacode;
SELECT 費目, 支出,
CASE 費目
WHEN '家賃' THEN '固定費'
WHEN '給料' THEN 'その他'
ELSE '変動費'
END AS 費用の種類
FROM 家計簿;
¥SQL¥
補足
CASE文の構文には2通りあり、もう1つは以下のようなものです。
CASE
WHEN 条件1 THEN 条件1の場合に返す値
WHEN 条件2 THEN 条件2の場合に返す値
ELSE デフォルト値
END
解答の構文とは違ってCASEの後ろに列名や式を記述しません。
その代わりWHENの後ろには値ではなく、条件式を記述します。
CASE文を指定する際は2通りあることを覚えておきましょう。
CASE
WHEN 条件1 THEN 条件1の場合に返す値
WHEN 条件2 THEN 条件2の場合に返す値
ELSE デフォルト値
END
解答の構文とは違ってCASEの後ろに列名や式を記述しません。
その代わりWHENの後ろには値ではなく、条件式を記述します。
CASE文を指定する際は2通りあることを覚えておきましょう。
#忍者CODE無料問題集で活動を記録しよう
完了にする!
構文は以下のようになり、CASEからENDまでが1つの選択列となります。
CASE 評価する列や式
WHEN 値1 THEN 値1の場合に返す値
WHEN 値2 THEN 値2の場合に返す値
ELSE それ以外の値
END
今回は家賃と給料のみが変動費と異なる値になるので、
ELSEに「変動費」を設定し、WHENで「固定費」と「その他」を指定します。
CASEによって割り当てられる値の列名はASを使って「費用の種類」としましょう。