【发布时间】:2014-01-02 21:37:48
【问题描述】:
我有两个包含以下字段的表
emp_table: emp_id, emp_name
salary_increase: emp_id, inc_date, inc_amount
我需要编写一个查询,提供员工详细信息、员工获得加薪的次数、最大加薪金额和加薪日期。这是我目前所拥有的:
SELECT e.*, count(i.inc_amount), max(i.inc_amount)
FROM salary_increase AS i
RIGHT JOIN emp_table AS e
ON i.emp_id=e.emp_id
GROUP BY e.emp_id;
这正确地给出了除了授予最大增加的日期之外的所有要求。我尝试了以下方法但没有成功:
SELECT e.*, count(i.inc_amount), max(inc_amount), t.inc_date
FROM salary_increase AS i
RIGHT JOIN emp_table AS e
ON i.emp_id=e.emp_id
RIGHT JOIN
(
SELECT emp_id, inc_date FROM salary_increase
WHERE inc_amount=max(inc_amount) GROUP BY emp_id
) AS t
ON e.emp_id=t.emp_id
GROUP BY e.emp_id;
这会给出错误“组函数的使用无效”。有谁知道我做错了什么?
【问题讨论】:
标签: mysql sql join group-by aggregate-functions