请问查询每一个部门中的第一个员工,Sql语句怎么写?
答案:4 悬赏:20
解决时间 2021-02-15 00:50
- 提问者网友:巴黎塔下许过得承诺
- 2021-02-14 04:35
请问查询每一个部门中的第一个员工,Sql语句怎么写?
最佳答案
- 二级知识专家网友:初心未变
- 2021-02-14 04:49
SELECt eID,eName FROM emp
INNER JOIN
(
SELECt min(eID) as minEID,DepID from emp
GROUP BY DepID
) t1
ON emp.eID = t1.minEID
INNER JOIN
(
SELECt min(eID) as minEID,DepID from emp
GROUP BY DepID
) t1
ON emp.eID = t1.minEID
全部回答
- 1楼网友:蜜罐小熊
- 2021-02-14 07:02
select top 1 form ....
- 2楼网友:不傲怎称霸
- 2021-02-14 06:18
为什么不做视图啊。
我先
select 任务 from 员工任务表 where 员工 in ( sleect 员工 form 部门表 where 部门=(select 部门 from 员工表 where 员工=‘员工’) )
- 3楼网友:一身浪痞味
- 2021-02-14 05:37
create table emp
(eid int identity(1,1),
eName varchar(10),
DepID int
)
insert into emp
select '张三',1 union
select '李四',1 union
select '王五',2 union
select '赵六',1 union
select '刘七',3 union
select '邹八',2 union
select '鲁九',2 union
select '周十',3
create table dept
(DeptID int identity(1,1),
dName varchar(10)
)
insert into dept
select '研发部' union
select '产品部' union
select '人事部'
________________(以上是建表和数据的代码,如果你有,你可以忽略)________________
其实一个表就可以了。
select * from emp
where
(select count(1) from emp a where a.DepID=emp.DepID and emp.eid>a.eid)<1
结果:
eID,eName,DepID
1 李四 1
2 刘七 3
3 鲁九 2
具体原理可参看我空 间的文章
SQL分类下的《取得分组TOP-N测试表与测试数据》
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯