【发布时间】:2015-02-13 19:54:16
【问题描述】:
我有两张桌子:
EMPLOYEES
=====================================================
ID NAME SUPERVISOR LOCATION SALARY
-----------------------------------------------------
34 John AL 100000
17 Mike 34 NY 75000
5 Alan 34 LE 25000
10 Dave 5 NY 20000
BONUS
========================================
ID Bonus
----------------------------------------
17 5000
34 5000
10 2000
我必须编写查询返回每个位置的最高薪员工列表,包括他们的姓名、薪水和薪水+奖金。排名应该基于工资加奖金。所以我写了这个查询:
select em.name as name, em.salary as salary, bo.bonus as bonus, max(em.salary+bo.bonus) as total
from employees as em
join bonus as bo on em.empid = bo.empid
group by em.location
但是我得到了错误的名字并且查询不返回没有奖金的员工(empid = 5 在员工表中),根据位置(25000 + 0 奖金)具有最高工资。
【问题讨论】: