我必须编写一个查询来选择首先加入部门的员工的ID我在加入日期对deptId和Min聚合函数应用分组。
EmpId joinDate deptId
1 2/5/2012 2
2 5/6/2012 1
3 2/5/2012 2
4 5/58/2012 2
我的结果应该是:
EmpId joinDate deptId
1 2/5/2012 2
2 5/6/2012 1
我无法获得EmpId,我的EmpId是Guid类型。有没有可能的解决方案。我正在使用MS SQL SERVER 2008。
答案 0 :(得分:1)
请尝试此查询并告诉我
select EmpId, joinDate , deptId from
(select row_number() over(partition by deptId order by joinDate) as rnk,*
from employe)E
where E.rnk=1
答案 1 :(得分:0)
也许有点简单的解决方案:
SELECT * FROM employees a WHERE joinDate IN
(SELECT MAX(b.joinDate) FROM employees b WHERE b.deptId = a.deptId)
假设您的表名称为employees
,并且您希望从首先加入的部门获得所有员工(可以有多个!)。
免责声明:未在MS SQL Server上测试,但在PostgreSQL上测试,但它是一个简单的SQL,我认为它应该有效。