永发信息网

sql 员工表和部门表问题

答案:3  悬赏:30  手机版
解决时间 2021-03-27 18:45
  • 提问者网友:原来太熟悉了会陌生
  • 2021-03-27 05:31
有员工表emp(id,name,wage,deptid),部门表 dept(did,name),要求写出每个部门的员工数。
这个怎么写啊,N半天都不晓得么办

如果一个部门没有人,而查出的结果要是0,那怎么搞 .
3楼的这个我看不懂,复制到查询分析器里面都是错
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 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人的部门
全部回答
  • 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯