【发布时间】:2017-05-03 06:35:38
【问题描述】:
很难描述我想要什么,但我会尝试: 首先,我有两张表:员工和薪水。我通过这个 SQL 命令加入了 2 个表:
"SELECT employee.id, employee.employee_name, employee.image, salary.year, salary.month, salary.day, salary.total_salary, salary.id, salary.created
FROM employee
JOIN salary ON salary.employee_id=employee.id"
获取我插入的所有值,执行后,我得到:
Created name year month day(working) total_salary
------------------------------------------------------------------------------
2016-12-17 20:41 A 2016 1 31 1550000
2016-12-17 21:49 A 2016 1 20 2000000
2016-12-17 22:49 A 2016 2 20 2000000
2016-12-18 22:43 B 2016 2 15 1550000
2016-12-18 23:43 B 2016 2 10 1000000
2016-12-18 23:49 B 2016 2 1 100000
之后,我想获取每个月的最新值,所以我在上面的 sql 末尾添加了这个命令:
GROUP BY employee.employee_name, salary.year, salary.month"
得到了这个:
Created name year month day(working) total_salary
------------------------------------------------------------------------------
2016-12-17 20:41 A 2016 1 31 1550000
2016-12-17 22:49 A 2016 2 20 2000000
2016-12-18 22:43 B 2016 2 15 1550000
什么查询会返回以下结果?
Created name year month day(working) total_salary
------------------------------------------------------------------------------
2016-12-17 21:49 A 2016 1 20 2000000
2016-12-17 22:49 A 2016 2 20 2000000
2016-12-18 23:49 B 2016 2 1 100000
【问题讨论】:
-
我有点困惑,您想按
month对它们进行分组,但在您想要的输出中有两个相同的month,这似乎是矛盾的。 -
你可以看到每个员工有很多个月,我只想显示一个员工的每个月。看起来有点复杂:))
-
如果您放置实际表,则对测试查询更有帮助。如果没有,我可以说您只需编写子查询来计算每个员工的总数,然后将其加入主表。