一、SQL21 查找在职员工自入职以来的薪水涨幅情况
1、题目
2、思路
先找到员工刚入职时候的薪资情况存到一个临时表中,然后再找到员工现在的薪资情况存到另一个表中;最后将两者的薪资相减就能得到想要的结果
3、错解
可以从薪水表中看到里面存储有两个薪资,而其相减的结果就是我们所需要的;
对薪资表进行按照emp_no分组,然后再用薪资减薪资(这是我最开始的想法,其实是行不通的)之前的练习中,我们能进行的是列与列之间相减(也就是表的不同的属性进行的操作)不能同属性之间进行操作;所以要先将之前的薪资和现在的工资进行分开变成两个表,然后才能进行相减的操作;
4、操作
①将两个表进行连接,连接的条件是员工编号,但是还有一个条件就是时间也要相等,这样得到的才是入职时的薪资情况,得到的表就是入职时的薪资表;
②将两个表进行连接,连接的条件是员工编号,但是还有一个条件就是时间要为‘9999-01-01’,因为这样代表的才是在职员工的薪资情况,也就是现在员工的薪资表;
③前面得到了入职的薪资表和现在的薪资表,将其薪资进行相减得到的就是涨幅了