为两列之间的差异创建 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;
我有以下练习:
确定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;