1

我想展示薪水最高的球员。

select  max(Salary) as highest_salary, p.[Last name]
from tbl_PlayersTable as p, tbl_team as t
where p.Team = t.TeamID
and TeamID = 1000
Group by p.[Last name]

输出是:

highest_salary  Last Name
   8000          Bosh
   7000          Wade
   6000          James

我只想展示(8000 波什,因为他是薪水最高的球员)。

4

5 回答 5

6

您不需要MAX也不GROUP BY,只需使用TOP 1with ORDER BY Salary DESC。像这样的东西:

select TOP (1) Salary as highest_salary, p.[Last name]
from tbl_PlayersTable as p, tbl_team as t
where p.Team = t.TeamID
 and TeamID = 1000
ORDER BY Salary  DESC
于 2013-05-08T07:33:34.963 回答
2

因为您使用group by p.[Last name]以便查询将获得它找到max(Salary)的每个不同的。Last name所以如果你想得到max(Salary)所有的基础Last name,你必须删除group by

于 2013-05-08T07:28:56.540 回答
1

您在那里对值进行分组(请参阅最后的 Group By),因此您的 max 函数计算每组的最大值。如果您想要一个绝对最大值,请删除分组。

于 2013-05-08T07:27:37.723 回答
1

不需要group by甚至max

select  top 1 Salary
,       [Last name]
from    tbl_PlayersTable
where   TeamID = 1000
order by
        salary desc
于 2013-05-08T07:37:58.090 回答
0

您将需要取前 1 个值

  select TOP (1) Salary as maxsalary, p.[Last name]
   from tbl_PlayersTable as p 
   Inner join  tbl_team as t on  p.Team = t.TeamID
  where TeamID = 1000
  ORDER BY Salary  DESC
于 2013-05-08T10:05:30.953 回答