Sql server 使用merge语句时循环月和年到日期
我有两个表,其中包含以下数据:- 公司 公司ID公司名称 1公司1 2公司2 3公司3 雇员 EmployeeId EmployeeName公司ID起始日期 1员工1 2011年12月21日 2员工2 2012年1月20日 3员工3 2 2012年3月23日 4员工4 2 2012年7月15日 5名员工5 2 01/20/2013 6员工6 3 2013年12月17日 现在我想检查一下,在指定的月份和年份,团队招募了多少人?我的存储表如下所示:- 招聘指标 公司ID年-月员工收入 2011年12月1日 2012年1月1日 2 2012 3 1 2 2012 7 1 2 2013 1 1 2013年3月12日1 这应该是一个合并存储过程,如果数据存在于同一月份、年份和公司,则应更新数据,如果不存在,则插入数据?循环将从一个可以是参数的特定日期开始,并循环当前月份 请帮我做这个 谢谢 维沙尔 如果你想看到公司的员工总数,你可以这样做Sql server 使用merge语句时循环月和年到日期,sql-server,date,Sql Server,Date,我有两个表,其中包含以下数据:- 公司 公司ID公司名称 1公司1 2公司2 3公司3 雇员 EmployeeId EmployeeName公司ID起始日期 1员工1 2011年12月21日 2员工2 2012年1月20日 3员工3 2 2012年3月23日 4员工4 2 2012年7月15日 5名员工5 2 01/20/2013 6员工6 3 2013年12月17日 现在我想检查一下,在指定的月份和年份,团队招募了多少人?我的存储表如下所示:- 招聘指标 公司ID年-月员工收入 2011年12
SELECT YEAR(StartDate) AS [Year], MONTH(StartDate) AS [Month]
,C.CompanyName , COUNT(E.EmployeeId) EmpTotal
FROM Employees E INNER JOIN Company C
ON E.CompanyId = C.CompanyId
GROUP BY YEAR(StartDate), MONTH(StartDate) ,C.CompanyName
您必须联接这两个表,然后才能应用GROUP BY。我可以在你尝试自己写一些代码后给你帮助。
SELECT YEAR(StartDate) AS [Year], MONTH(StartDate) AS [Month]
,C.CompanyName , COUNT(E.EmployeeId) EmpTotal
FROM Employees E INNER JOIN Company C
ON E.CompanyId = C.CompanyId
GROUP BY YEAR(StartDate), MONTH(StartDate) ,C.CompanyName