我有两个员工表,一个是员工详细信息和加入日期,另一个表是员工终止详细信息和辞职日期。
我需要创建一个报告,我必须计算当前活跃的emplyee。这意味着我需要显示当前正在这家公司工作并且没有辞职的所有员工名单。我希望逐年显示这些记录。
员工表:
sr employee_name join_year
1 test employee 2015
2 John Smith 2015
3 ABC employee 2016
4 Axel Alex 2017
5 Bhatt Charya 2017
终止表:
sr emplyee name resign_year
1 John smith 2016
2 Bhatt Charya 2017
报告应如下所示:
sr year active_employee
1 2015 1
2 2016 1
3 2017 1
在上面的示例中,您可以看到我们在第一个表中有5名员工,但在2016年和2017年有2名员工辞职,因此报告应该如上所述。
在查询中,我需要检查年份,例如一名员工加入2014年并在同一年辞职,然后不应计算,加入日期在第一个表格中,辞职日期在termination_table中。那么如何匹配以及如何进行查询呢?
答案 0 :(得分:0)
试试这个;
SELECT join_year AS year, count(employee_name) AS active_employee
FROM Employee
WHERE NOT EXISTS
(SELECT *
FROM Termination
WHERE Employee.employee_name = Termination.employee_name)
GROUP BY join_year
ORDER BY join_year