MYSQL在特定年份工作的员工人数(按部门划分)
您好,我刚刚开始编写sql查询MYSQL在特定年份工作的员工人数(按部门划分),mysql,join,Mysql,Join,您好,我刚刚开始编写sql查询 我想分别显示201320142015年的工人数量 我查找部门员工数量的代码是 SELECT d.department_id,d.department_name, COUNT('e.emp_id') "number of employees" FROM master_department d,master_employee e WHERE d.department_id = e.department GROUP
我想分别显示201320142015年的工人数量 我查找部门员工数量的代码是
SELECT d.department_id,d.department_name,
COUNT('e.emp_id') "number of employees"
FROM master_department d,master_employee e
WHERE d.department_id = e.department
GROUP BY d.department_id,d.department_name
在emp_辞职表中,有辞职日期和日期
在emp表中有加入日期。
我如何比较这些日期以确定在这些特定年份工作的员工数量
查找特定年份的工人的代码为
SELECT d.department_id,d.department_name,COUNT(e.emp_id)
AS Emp_sum_2015
FROM master_employee AS e INNER JOIN
employee_resign AS er ON e.emp_id = er.emp_id
INNER JOIN master_department d ON d.department_id = e.department
WHERE (YEAR(e.joining_date) <= 2015) AND (YEAR(er.date_of_resign) >= 2015 OR
YEAR(er.date_of_resign) IS NULL)
GROUP BY d.department_id,d.department_name
选择d.department\u id、d.department\u name、COUNT(e.emp\u id)
作为Emp_sum_2015
来自master_员工作为内部联接
雇员在e.emp\u id=er.emp\u id上辞去er职务
内部连接主管部门d在d上部门id=e部门
其中(年份(即加入日期)=2015年或
年份(辞职日期为空)
按d.部门id、d.部门名称分组
我可以帮你在某一年完成这项工作
假设您的emp表模式为:
CREATE TABLE [dbo].[emp](
[emp_id] [int] NOT NULL,
[Join_date] [date] NOT NULL)
还有你的emp_辞职:
CREATE TABLE [dbo].[emp_resign](
[Resign_Id] [int] NULL,
[emp_id] [int] NULL,
[resignation_date] [date] NULL
)
从该查询中可以得到2015年工作的员工人数:
SELECT COUNT(e.emp_id) AS Emp_sum_2015
FROM dbo.emp AS e LEFT OUTER JOIN
dbo.emp_resign AS er ON e.emp_id = er.emp_id
WHERE (YEAR(e.Join_date) <= 2015) AND (YEAR(er.resignation_date) >= 2015 OR
YEAR(er.resignation_date) IS NULL)
选择计数(如emp\u id)作为emp\u和2015
从dbo.emp作为左外连接
dbo.emp_辞去e.emp_id=er.emp_id上的er职务
其中(年份(即加入日期)=2015年或
年份(er.辞职日期)为空)
您可以使用分组方式。我正在编辑您在问题中添加的查询:
SELECT YEAR(e.joining_date), d.department_id,d.department_name,COUNT(e.emp_id)
AS Emp_sum_2015
FROM master_employee AS e INNER JOIN
employee_resign AS er ON e.emp_id = er.emp_id
INNER JOIN master_department d ON d.department_id = e.department
WHERE (YEAR(e.joining_date) <= 2013) AND (YEAR(er.date_of_resign) >= 2015 OR
YEAR(er.date_of_resign) IS NULL)
GROUP BY YEAR(e.joining_date),d.department_id,d.department_name
选择年份(如加入日期)、部门id、部门名称、计数(如emp id)
作为Emp_sum_2015
来自master_员工作为内部联接
雇员在e.emp\u id=er.emp\u id上辞去er职务
内部连接主管部门d在d上部门id=e部门
其中(年份(即加入日期)=2015年或
年份(辞职日期为空)
按年份分组(如加入日期)、d部门id、d部门名称
你能试试看,让我知道它是否有效吗?你的表中有日志/初始日期字段吗?试着浏览标准书籍……。日期从。。。其中,(…)组中按部门id列出的日期,date@HarikaB我在emp表中有join_date字段,在emp_DIRECT中有辞职_date字段table@ustaad它必须是1个查询?不是每年3次查询?太好了,我根据我的要求重述了你的查询,你可以在我的问题上看到,有没有办法在一次查询中找到所有三年的员工?是的,我尝试了一些细微的改变。感谢红豆杉:)如果答案解决了问题,请投赞成票。它给出了问题是否解决的想法。因为我的声望低于15,我的赞成票只记录了下来,没有显示