0

我有 2 个表Corporations(business_id,corp_name)和Positions(business_id,salary,location)`

我正在尝试查找在特定位置薪酬最高的公司的名称。

前任。哪家公司在奥兰多的薪水最高?(我只希望公司名称和薪水显示为(NASCAR,90000))

SELECT MAX(salary)
FROM Positions
WHERE location = 'Orlando'
GROUP BY compid

然而,我得到的不是 1 个结果,而是奥兰多的所有公司及其职位工资。

4

2 回答 2

0

您需要连接这两个表才能获得公司名称。您没有告诉我们什么是 compid,但这就是为什么您会得到多个结果 - 每个 comp_id 一个。

假设 business_id 是公司的外键,这应该可以满足您的需求。

SELECT Corporations.Corp_Name, MAX(Positions.Salary)
FROM Positions
INNER JOIN Corporations ON Corporations.Business_id = Positions.Business_id
WHERE Positions.Location = 'Orlando'


If comp_id is your foreign key, use this
SELECT Corporations.Corp_Name, MAX(Positions.Salary)
FROM Positions
INNER JOIN Corporations ON Corporations.Comp_id = Positions.Comp_id
WHERE Positions.Location = 'Orlando'
于 2013-10-11T18:26:26.007 回答
-1

ISO/ANSI 标准 SQL 的代码:

SELECT c.comp_name, p.salary 
FROM Positions  p
  JOIN Corporations  c
    ON c.business_id = p.business_id
WHERE p.location = 'Orlando'
ORDER BY p.salary DESC
  FETCH FIRST 1 ROWS ONLY ;
于 2013-10-11T18:30:36.227 回答