sql 存储过程

cqj910908 2017-12-05 08:53:34
需求:现有两张表分别为招聘表和离职表,分别求出每个月的招聘人数和离职人数,求净增,就是把招聘的人减去离职的人

问题:并不是每个月都有招聘到的人和离职的人,不能简单的相减,也有可能某个月既没有招聘人数也没有离职人数,这个月的值就应该是零
是否需要用到存储过程,改怎么写?还是有更简便的方法?

sql:
select count(distinct a.fpersonid) 新进人数,TLEVEL2,entry_year,entry_month
from RECRUITMENT a
where TLEVEL2='药品事业部'and entry_year=2017
group by entry_year,entry_month,TLEVEL2
order by entry_year,entry_month
;
-----招聘

select
count(distinct a.fpersonID) 离职人数,level2,a.LEAVEDATE_YEAR,a.LEAVEDATE_MONTH
from DIMISSION a
where level2='药品事业部' and LEAVEDATE_YEAR=2017
group by level2,a.LEAVEDATE_YEAR,a.LEAVEDATE_MONTH
order by LEAVEDATE_MONTH

-----离职




...全文
296 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Space1208 2017-12-08
  • 打赏
  • 举报
回复
我瞎想的方式,没有具体实现 可以在这两张表上分别创建一个触发器,当两个表新录入数据时after insert on new_table或者更新数据,触发器就向一个新表里面插入一个1,到时你直接在新表里面计算出来了
碧水幽幽泉 2017-12-05
  • 打赏
  • 举报
回复
如果当月离职人数大于招聘人数呢? 净增如何计算?
  • 打赏
  • 举报
回复
感觉弄个视图就可以了
cqj910908 2017-12-05
  • 打赏
  • 举报
回复
引用 2 楼 qq646748739 的回复:
如果当月离职人数大于招聘人数呢? 净增如何计算?
净增就是负数啊

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧