我想知道是否有人能帮上忙。
我正在尝试编写一些代码,使用Adventureworks2012数据库根据职位返回最新招聘人员的列表。
到目前为止,我有以下几点:
SELECT DISTINCT HREDH.BusinessEntityID,
HRE.JobTitle,
hre.HireDate
FROM [HumanResources].[EmployeeDepartmentHistory] HREDH
INNER JOIN HumanResources.Employee HRE ON HREDH.BusinessEntityID = HRE.BusinessEntityID
AND hre.BusinessEntityID = (
SELECT TOP 1 BusinessEntityID
FROM HumanResources.Employee hre2
WHERE hre2.JobTitle = hre.JobTitle
ORDER BY HireDate DESC
)
ORDER BY HRE.JobTitle这似乎可以很好地工作,但我确信有一种更好的方法(不需要在语句开头使用SELECT DISTINCT )
我正在尽我最大的努力自学SQL,所以我非常感谢来自这里的大量知识的帮助!
谢谢,
发布于 2017-04-06 04:19:12
这将返回两个表的联接中的所有行,其中职务的雇用日期等于该职务的最高日期。
SELECT
HREDH.BusinessEntityID
,HRE.JobTitle
,hre.HireDate
FROM [HumanResources].[EmployeeDepartmentHistory] AS HREDH
JOIN HumanResources.Employee AS HRE
ON HREDH.BusinessEntityID = HRE.BusinessEntityID
WHERE HRE.HireDate = (SELECT MAX(HireDate) FROM HumanResources.Employee AS _HRE WHERE HRE.JobTitle = _HRE.JobTitile)
ORDER BY HRE.JobTitlehttps://stackoverflow.com/questions/43240666
复制相似问题