【问题标题】:MYSQL query to get number of employees Working in Current year and Past YearsMYSQL查询以获取在当前年份和过去年份工作的员工数量
【发布时间】:2014-12-11 09:24:32
【问题描述】:

我一直停留在这个查询上,我必须选择过去 5 年在公司工作的员工。

e-g 
in 2010 1 employee Registered  so  Total Employees in 2010 1
in 2011 2 employees Registered so Total Emloyees in 2013 3
in 2012 4 employees Registered and 1 left so Total Employees in 2012 6
in 2013 5 employees Registered and 2 left So Total Employees in 2013 9
in 2014 No New employee Registered or Left So Same as Same
etc

所以最终员工报告就像

(2010), (2011), (2012), (2013), (2014)
   1      3       6        9       9

现在我被困住了如何在 mysql 查询中实现这一点。

我有表 Employee,其中注册了员工信息。

就业表,如果员工已注册,则分配加入日期,如果离开则分配结束日期。

还有一个性别表来显示一年中有多少男性和多少女性在公司工作。

最后这是我尝试过的查询.. 但这不是正确的查询。我在查询中遗漏了一些东西,但我不太明白。

SELECT MLGT.`gender_type_title`,MLGT.`gender_type_id` AS GenderID,COUNT(E.`gender`) AS TotalGenders,ET.`joining_date`
FROM employee E
INNER JOIN employment ET
ON E.`employee_id` = ET.`employee_id` AND ET.`current` = 1 AND ET.`trashed`=0
INNER JOIN ml_gender_type MLGT
ON E.`gender` = MLGT.`gender_type_id` AND MLGT.`trashed`=0
WHERE E.`trashed`=0 AND ET.`joining_date` >= DATE_SUB(NOW(),INTERVAL 5 YEAR) AND ET.`current`= 1
GROUP BY E.`gender`, YEAR(ET.`joining_date`);

【问题讨论】:

  • 所以你想要每年离职的男性和女性员工的总和

标签: mysql sql database


【解决方案1】:

您需要另一个表(或常量子查询)来包含要分组的年份列表。在加入日期比较条件下,在这个新表和就业表之间建立一个连接。然后统计结果:)

【讨论】:

  • 你能举个例子吗,对不起,我不擅长查询。
  • 我没有再安装mysql来创建一个例子,所以我不能给你准确的例子,但这是基本的东西(join,where,count,group by,have)看看结果在我告诉你的每一步,你都会看到下一步申请获得所需的数字。一般来说,永远不要尝试在一个块中编写多行的完整查询,而是进行小迭代以达到您的目标,这是使复杂查询工作的方法。
【解决方案2】:

试试这个查询

    SELECT YEAR(ET.`joining_date`) as Year, MLGT.`gender_type_title` as Gender, count(E.employee_id) as Emp_count
    FROM employee E
    INNER JOIN employment ET
    ON E.`employee_id` = ET.`employee_id` AND ET.`current` = 1 AND ET.`trashed`=0
    INNER JOIN ml_gender_type MLGT
    WHERE E.`trashed`=0 AND ET.`joining_date` >= DATE_SUB(NOW(),INTERVAL 5 YEAR) AND ET.`current`= 1
    GROUP BY Year, Gender;

【讨论】:

  • 感谢您的回复,但您的查询仅显示男性?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多