SQL查询:“编写一个SQL查询,按职务分类计算员工的最高工资
任务是编写一个SQL查询,以按职务分类计算员工的最高工资。输出显示别名 创建了两个表,即雇员和职务。雇员表包括工资,而职务表包括职务分类,如“经理” 我显示的当前代码,即该分类中工资最高的员工,但没有显示别名。它只显示该员工的所有信息 这是我的密码:SQL查询:“编写一个SQL查询,按职务分类计算员工的最高工资,sql,sql-server,Sql,Sql Server,任务是编写一个SQL查询,以按职务分类计算员工的最高工资。输出显示别名 创建了两个表,即雇员和职务。雇员表包括工资,而职务表包括职务分类,如“经理” 我显示的当前代码,即该分类中工资最高的员工,但没有显示别名。它只显示该员工的所有信息 这是我的密码: SELECT * FROM Employee WHERE Salary IN ( SELECT MAX(Salary) AS 'Maximum_Salary_Class' FROM Employe
SELECT *
FROM Employee
WHERE Salary IN (
SELECT MAX(Salary) AS 'Maximum_Salary_Class'
FROM Employee
WHERE JobID IN ( SELECT JobID
FROM Job_Title_Table_
WHERE Job_Classification = 'Manager' ) );
试试这个
;with cte as
(
select E.*,J.Job_Classification,Dense_RAnk() over(partition by J.Job_Classification order by E.Salary) as DenseRank
from Employee E
inner join Job_Title J on E.JobID = J.JobID
)
select * from cte
where DenseRank = 1
我试图理解你的目的。
如果我没有正确理解,请告诉我。类似这样的内容:
select t.Job_Classification, max(e.salary) as 'Maximum_Salary_Class'
from Employee e join Job_Title_Table_ t on e.JobID = t.JobId
group by t.Job_Classification;
我想你想要这个
SELECT E.*,Job_Classification
FROM Employee
,(
SELECT J.JobID,J.Job_Classification,MAX(Salary) AS 'Maximum_Salary_Class'
FROM Employee AS E
,Job_Title_Table_ AS J
WHERE E.JobID = J.JobID
AND Job_Classification = 'Manager'
GROUP BY J.JobID,J.Job_Classification
) AS EJ
WHERE E.JobID = EJ.JobID
AND Salary = Maximum_Salary_Class
哪个别名?我不明白你想展示什么。他们不再教连接了吗?@IvanStarostin这里只有一个别名。请在你的问题中添加表结构。这是一个非常简单的连接、分组和最大查询,你应该做更多的研究,而不是寻找填鸭式的答案。托德。你有什么改变吗?编辑你的帖子没有保存以查看它是如何完成的。