Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用merge语句时循环月和年到日期_Sql Server_Date - Fatal编程技术网

Sql server 使用merge语句时循环月和年到日期

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

我有两个表,其中包含以下数据:-

公司

公司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

这应该是一个合并存储过程,如果数据存在于同一月份、年份和公司,则应更新数据,如果不存在,则插入数据?循环将从一个可以是参数的特定日期开始,并循环当前月份

请帮我做这个

谢谢

维沙尔

如果你想看到公司的员工总数,你可以这样做

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