按年度加入表格,并根据那年度计算其他表格特定记录和条件

时间:2017-12-02 04:29:38

标签: php mysql sql join

我有两个员工表,一个是员工详细信息和加入日期,另一个表是员工终止详细信息和辞职日期。

我需要创建一个报告,我必须计算当前活跃的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中。那么如何匹配以及如何进行查询呢?

1 个答案:

答案 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