需求:現有兩張表分別為招聘表和離職表,分別求出每個月的招聘人數和離職人數,求凈增,就是把招聘的人減去離職的人
問題:并不是每個月都有招聘到的人和離職的人,不能簡單的相減,也有可能某個月既沒有招聘人數也沒有離職人數,這個月的值就應該是零
是否需要用到存盤程序,改怎么寫?還是有更簡便的方法?
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
-----離職


uj5u.com熱心網友回復:
感覺弄個視圖就可以了uj5u.com熱心網友回復:
如果當月離職人數大于招聘人數呢? 凈增如何計算?uj5u.com熱心網友回復:
凈增就是負數啊
uj5u.com熱心網友回復:
我瞎想的方式,沒有具體實作
可以在這兩張表上分別創建一個觸發器,當兩個表新錄入資料時after insert on new_table或者更新資料,觸發器就向一個新表里面插入一個1,到時你直接在新表里面計算出來了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/77980.html
標籤:基礎和管理
上一篇:呼叫存盤程序報ora-01031和ora-06512
下一篇:oracle匯出錯誤
