这道题目要求我们将所有获取奖金的员工当前的薪水增加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';