永发信息网

用SQLsever编写:​设计一个新表,要求在公司工作20年以上员工的工资加薪 (之前提问代码错了)

答案:3  悬赏:40  手机版
解决时间 2021-01-20 18:34
  • 提问者网友:辞取
  • 2021-01-20 08:34
用SQLsever编写:​设计一个新表,要求在公司工作20年以上员工的工资加薪 (之前提问代码错了)
最佳答案
  • 五星知识达人网友:归鹤鸣
  • 2021-01-20 09:48
看您写的语句,大概猜到是想:把员工的工龄为20年或以上的工资,在原来的基础上再增加其对应部门的平均工资;是这样吧?Salary = Salary + AVG(本部门的工资)
用下面的语句实现吧:

update a
set Salary = a.Salary+b.Salary
from Employee_0001 as a,(select DepartmentId,avg(Salary) as Salary from Employee_0001 group by DepartmentId)b

where a.DepartmentId=b.DepartmentId and datediff(yy,a.Hiredate,getdate())>=20

原理是把Employee_0001表与计算平均工资的临时表用DepartmentId关联起来,再通过where的条件判断,只将工龄大于或等于20的执行更新操作。
全部回答
  • 1楼网友:往事埋风中
  • 2021-01-20 11:42
我指点的,你先按想要的。追问不好意思,没懂是什么意思,先按?
  • 2楼网友:不甚了了
  • 2021-01-20 10:49

给个思路吧
先取出部门的基本工资数据
根据职员的部门ID和基本工资数据中的ID进行连接
修改
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯