为两列之间的差异创建 SQL 代码并更改 table

Creating an SQL Code for the difference between two columns and altering a table

我有以下练习: 确定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)是正确的,但我不确定第二部分。

如果你想要一个 select 语句,那就是简单的算术 - 差异只是原始工资的 15%,所以:

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

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

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

当它是一个练习时,它是一种对现有数据进行操作。无需更改 tables。除非确实需要修改 table.

的结构,否则不要更改 tables

请使用以下查询作为您的解决方案,

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;