为两列之间的差异创建sql代码并更改表

lyfkaqu1  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(303)

我做了以下练习:确定 employee_Id ,所有员工的姓名和工资。添加中间列 new_salary 结果显示目前的工资增长了15%。新工资必须作为整数值返回。然后添加另一个中间列,显示原始薪资和新薪资之间的差异。差也必须作为整数值返回。
我尝试编写的代码如下:

select ID, name, salary,
       round (salary * 1.15, 0) as "new_salary"
from Employee;

alter table Employee
    add difference (salary, new_salary)

我认为第一部分(创造 new_salary )是的,但我不确定第二部分。

tag5nh1u

tag5nh1u1#

当它是一个练习时,它是对现有数据执行操作的一种。没有必要改变table。除非确实需要修改表的结构,否则不要修改表。
请使用下面的查询来获取您的解决方案,

select ID, name, salary,
       round (salary * 1.15, 0) as new_salary, (round (salary * 1.15, 0)) - salary as difference
from Employee;

select ID, name, salary,
       round (salary * 1.15, 0) as new_salary, (round ((salary * 1.15) - salary), 0) as difference
from Employee;
yfwxisqw

yfwxisqw2#

如果你想要一个 select 声明,那么这是简单的算术-差额只是原始工资的15%,所以:

select 
    id, 
    name, 
    salary, 
    round(salary * 1.15, 0) new_salary, 
    round(salary * 0.15, 0) salary_diff
from employees

另一方面,如果您希望在表本身中创建新列,那么我建议使用计算列。不同数据库的语法可能略有不同,但其思想是:

alter table employee add new_salary  as (round(salary * 1.15, 0));
alter table employee add salary_diff as (round(salary * 0.15, 0));

相关问题