
SQL Oracle serverにって質問です。
会社テーブルがあり、そのテーブルから
社員名、給料、歩合などの列が存在します。
その中から、社員名、給料を表示し、さらに
給料×歩合したものを歩合込給料列として表示したいです。(歩合がnullの場合は給料を表示)
さらに、給与レベル(列見出しレベル)を給与の多い順に表示したいです。
給与レベル列に関しては、歩合込給料が20000より多ければAランク、9000より多くて20000以下なら
Bランク、3500より多くて9000以下ならCランク、それ以下はDランクと表示する場合
以下の写真の通りにやったら全てDランクになってしまいます。修正点を教えてください。

A 回答 (4件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
CASE式でのsalary*buaiは、NVL関数を使ってないのでbuaiがNULLの場合、結果もNULLになるのでELSEになります。
SELECT文を簡略化し、この問題にも対処しました。
SELECT
name,salary
,(CASE
WHEN "歩合込給料" > 20000 THEN 'Aランク'
WHEN "歩合込給料" > 9000 THEN 'Bランク'
WHEN "歩合込給料" > 3500 THEN 'Cランク'
ELSE 'Dランク'
END) レベル
FROM
(SELECT
name,salary
,NVL(salary * buai, salary) "歩合込給料"
FROM co) x
ORDER BY "歩合込給料" DESC
;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
近くのスーパーに接客態度が悪...
-
同期と給料が2万も違います。 ...
-
アルバイトについて質問です。 ...
-
「賃金の頭打ち」とはどういう...
-
軽配送の個人事業主です。 元請...
-
質問です。 自分は今月から働き...
-
給料が固定給の方に質問があり...
-
外国人がヘッドハンティングさ...
-
バイト先でマイナンバーカード...
-
日本人って
-
一般的にいう
-
退職代行の会社は必要でしょうか?
-
仕事を毎月必ず1日は休む人って...
-
友人に不幸があった場合の勤務...
-
「よく休む人」の定義はどのく...
-
転職後の自己都合の休みについて
-
会社を週一で休む社員
-
仕事で欠勤が多い人は嫌われや...
-
欠勤について。年4日は多いで...
-
有給ってどのくらいの頻度で取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
近くのスーパーに接客態度が悪...
-
同期と給料が2万も違います。 ...
-
日本生命で働いてる方に
-
一般的にいう
-
質問です。 自分は今月から働き...
-
アメリカって週給制なんですか?
-
日本生命の給料は前払いなんで...
-
客員教授って給料もらえるの?
-
まいばすけっとの給与明細について
-
親に雇われてる自営業の旦那の給料
-
給料泥棒を追い出す方法
-
バイトをばっくれてます。 ばっ...
-
私の高校で昨年度は教務主任だ...
-
通勤時間ってどこまでが許容範...
-
10日くらいで辞めたバイト先か...
-
ブラック企業の辞め方 ブラック...
-
バイトの給料が30分区切りでし...
-
日本ってなんで給料安いし税金...
-
仕事を辞める いきなり辞めたあ...
-
お仕事をする際に発生する消費税?
おすすめ情報
写真では文字が見づらくてすいません。
SELECT name,salary,NVL(salary * buai, salary)
"歩合込給料", (CASE WHEN salary * buai > 20000 THEN 'Aランク' WHEN salary * buai <=
20000 AND salary * buai > 9000 THEN 'Bランク' WHEN salary * buai <= 9000 AND salary * buai > 3500 THEN 'Cランク' ELSE 'Dランク' END
) レベル FROM co ORDER BY "歩合込給料" DESC