我有两张表如下:
我必须显示经理姓名列表和他/她的最高项目预算。这就是我到目前为止所做的:
SELECT emp.Name, proj.Budget
FROM EmployeeStatistics emp, Projects proj
WHERE (emp.EmployeeID, proj.Budget) IN (SELECT EmployeeIDNO, MAX(Budget)
FROM Projects
GROUP BY EmployeeIDNO)
但是当我尝试运行它时,我收到以下错误:
现在,如果我只运行子查询,结果是:
在我的主查询中,我只需要将名称和预算与子查询的结果相关联,但这是我无法弄清楚的
答案 0 :(得分:0)
一个简单的JOIN
应该可以工作,不需要子查询。这是explicit join syntax:
SELECT emp.Name, MAX(proj.Budget) as MaxBudget
FROM EmployeeStatistics emp
JOIN Projects proj on emp.EmployeeID = proj.EmployeeIDNO
GROUP BY emp.Name
如果您想包含没有预算的员工,请改用LEFT JOIN
。