SQL中查询,显示佣金大于工资的员工的所有详细信息

时间:2021-04-22 11:05:26

标签: sql

请帮忙完成任务
显示佣金高于工资的员工的所有详细信息 为所有其他员工(不是经理,也不是销售员)在以下组中创建附加列 - “Salary_range”是经理或销售员的员工,在以下组“小于 2000”、“介于 2000 和 5000”和“超过 5000”中) 值应为 'MISSING'。

SELECT * FROM employees WHERE commission>salary

开始了,但接下来应该如何进行?

示例表:员工

emp_id | emp_name | job_name  | manager_id | hire_date  | salary  | commission | dep_id
-------|----------|-----------|------------|------------|---------|------------|--------
 68319 | KAYLING  | PRESIDENT |            | 1991-11-18 | 6000.00 |            |   1001
 66928 | BLAZE    | MANAGER   |      68319 | 1991-05-01 | 2750.00 |            |   3001
 67832 | CLARE    | MANAGER   |      68319 | 1991-06-09 | 2550.00 |            |   1001
 65646 | JONAS    | MANAGER   |      68319 | 1991-04-02 | 2957.00 |            |   2001
 67858 | SCARLET  | ANALYST   |      65646 | 1997-04-19 | 3100.00 |            |   2001
 69062 | FRANK    | ANALYST   |      65646 | 1991-12-03 | 3100.00 |            |   2001
 63679 | SANDRINE | CLERK     |      69062 | 1990-12-18 |  900.00 |            |   2001
 64989 | ADELYN   | SALESMAN  |      66928 | 1991-02-20 | 1700.00 |     400.00 |   3001
 65271 | WADE     | SALESMAN  |      66928 | 1991-02-22 | 1350.00 |     600.00 |   3001
 66564 | MADDEN   | SALESMAN  |      66928 | 1991-09-28 | 1350.00 |    1500.00 |   3001
 68454 | TUCKER   | SALESMAN  |      66928 | 1991-09-08 | 1600.00 |       0.00 |   3001
 68736 | ADNRES   | CLERK     |      67858 | 1997-05-23 | 1200.00 |            |   2001
 69000 | JULIUS   | CLERK     |      66928 | 1991-12-03 | 1050.00 |            |   3001
 69324 | MARKER   | CLERK     |      67832 | 1992-01-23 | 1400.00 |            |   1001

1 个答案:

答案 0 :(得分:0)

使用嵌套的 CASE 语句。

select *
      ,case
         when JOB_ID in ('MANAGER', 'SALESMAN') then
           case
             when SALARY < 2000 then 'Less than 2000'
             when SALARY between 2000 and 5000 then 'Between 2000 and 5000'
             when SALARY > 5000 then 'More than 5000'
           end
         else 'MISSING'
       end as SALARY_RANGE
  from EMPLOYEES
 where COMMISSION > SALARY