我有一个这样的工资表:
id | person_id | start_date | pay
1 | 1234 | 2012-01-01 | 3000
2 | 1234 | 2012-05-01 | 3500
3 | 5678 | 2012-01-01 | 5000
4 | 5678 | 2013-01-01 | 6000
5 | 9101 | 2012-09-01 | 2000
6 | 9101 | 2014-04-01 | 3000
7 | 9101 | 2011-01-01 | 1500
and so on...
现在我想查询一个公司所有人员特定月份的工资总和。
我已经有了在特定公司在特定月份工作的人员的 ID,所以我可以做类似 WHERE person_id IN (...)
不过,我对薪水查询有一些问题。例如,2012-08 月份的结果应该是:
10000
即 3500+5000+1500。
因此,我需要找到最大 start_date <= 特定月份的总工资值(对于 IN 子句中的所有人)。
我尝试了各种 INNER JOINS,但这是漫长的一天,我现在无法思考。
任何提示都非常感谢。