gpt4 book ai didi

MySQL - 最近两个月的员工工资差异

转载 作者:行者123 更新时间:2023-11-29 05:53:56 24 4
gpt4 key购买 nike

我想获取所有员工最近两个月的工资差异。

示例数据:http://sqlfiddle.com/#!9/02bfb/1

预期输出:

enter image description here

我试过的查询:

SELECT tab1.name, tab1.emp_id 
FROM a_test tab1 join a_test tab2
on tab1.id = tab2.id
group by tab1.emp_id

最佳答案

正如我在评论中指出的那样,联接似乎是最好的解决方案:

SELECT a.emp_id,
a.salary-b.salary AS diff,
CONCAT(a.salary,' - ',b.salary) as diff_str
FROM a_test AS a
JOIN a_test AS b
ON a.emp_id = b.emp_id AND a.month_id-1 = b.month_id
WHERE a.month_id = (SELECT MAX(month_id) FROM a_test)

我添加了最后一行以仅返回最近两个月的差异。我本可以完成 WHERE a.month_id = MONTH(NOW()) 但我选择从数据表中选择最后一个月。请注意,这里的子查询并不是低效的,因为它只运行了一次。

结果是:

emp_id    diff    diff_str
1 -26000 27000 - 53000
2 9000 32000 - 23000

http://sqlfiddle.com/#!9/02bfb/11/0

https://dev.mysql.com/doc/refman/8.0/en/join.html

关于MySQL - 最近两个月的员工工资差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51512217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com