校招算法笔面试 | SQL笔试面试编程题-将所有获取奖金的员工当前的薪水增加10%

题目

题目链接

这道题目要求我们将所有获取奖金的员工当前的薪水增加10%。我们要做的事情如下:

1. 确定总体问题

我们需要从薪水表和奖金表中提取数据,通过员工编号进行匹配,更新薪水表中符合条件的记录,将获得奖金的员工当前薪水增加10%。

2. 分析关键问题
  • 筛选获得奖金的员工:通过子查询从emp_bonus表中获取所有获得奖金的员工编号。
  • 筛选当前薪水记录:通过条件过滤,找出薪水表中to_date9999-01-01的记录。
  • 更新薪水:将符合条件的记录的薪水增加10%。
3. 解决每个关键问题的代码及讲解
步骤1:筛选获得奖金的员工

我们使用子查询从emp_bonus表中获取所有获得奖金的员工编号:

where emp_no in (
    select emp_no from emp_bonus
)
  • SELECT emp_no FROM emp_bonus:获取所有获得奖金的员工编号。
步骤2:筛选当前薪水记录

我们通过条件过滤,找出薪水表中to_date9999-01-01的记录:

and to_date='9999-01-01'
  • to_date='9999-01-01':筛选出当前薪水记录。
步骤3:更新薪水

我们将符合条件的记录的薪水增加10%:

update salaries
set salary = salary * 1.1
  • SET salary = salary * 1.1:将薪水增加10%。

完整代码

update salaries
set salary = salary * 1.1
where emp_no in (
    select emp_no from emp_bonus
) and to_date='9999-01-01';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值