有员工表emp(id,name,wage,deptid),部门表 dept(did,name),要求写出每个部门的员工数。
这个怎么写啊,N半天都不晓得么办
如果一个部门没有人,而查出的结果要是0,那怎么搞 .
3楼的这个我看不懂,复制到查询分析器里面都是错
sql 员工表和部门表问题
答案:3 悬赏:30 手机版
解决时间 2021-03-27 18:45
- 提问者网友:原来太熟悉了会陌生
- 2021-03-27 05:31
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2019-12-21 02:30
select dept.did,dept.name,count(emp.id)
from dept
join emp on emp.deptid=dept.id
group by dept.did,dept.name
把join 改为left join 就能查出0人的部门
from dept
join emp on emp.deptid=dept.id
group by dept.did,dept.name
把join 改为left join 就能查出0人的部门
全部回答
- 1楼网友:山河有幸埋战骨
- 2019-08-11 10:49
Try this!
select dept.name,(case when ct is null then 0 else then ct end) dept_member_ct from
dept left join
(select deptid,count(*) ct from emp group by deptid) AAA
on dept.did=AAA.deptid;
----
(case when ct is null then 0 else then ct end)这一句就是解决"部门没有人,结果是0"的问题的。
- 2楼网友:夜风逐马
- 2019-06-27 04:14
create proc setdepartment
as
begin
declare @did int
select @did=部门id where 部门名称=‘经理办公室’
update 员工表 set 部门id=@did where datediff(yy,员工入职日期,getdate())>6
end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯