Sql server 按任命状态返回每年的员工人数
我有一个列如下的表:Sql server 按任命状态返回每年的员工人数,sql-server,tsql,stored-procedures,sql-server-2017,Sql Server,Tsql,Stored Procedures,Sql Server 2017,我有一个列如下的表: +-----------+--------------------+---------------+-------------+ | person_id | appointment_status | starting_date | ending_date | +-----------+--------------------+---------------+-------------+ | 1 | P | 2011-11
+-----------+--------------------+---------------+-------------+
| person_id | appointment_status | starting_date | ending_date |
+-----------+--------------------+---------------+-------------+
| 1 | P | 2011-11-23 | 2012-11-23 |
+-----------+--------------------+---------------+-------------+
| 2 | JO | 2011-11-23 | 2012-11-23 |
+-----------+--------------------+---------------+-------------+
根据这个表,我想输出在某一年组中注册的人员的总人数(按他们的状态)。基本上是这样的:
+-----------+---------------+------+
| Status | No. of Person | Year |
+-----------+---------------+------+
| Permanent | 5 | 2011 |
+-----------+---------------+------+
| Job Order | 16 | 2011 |
+-----------+---------------+------+
| Permanent | 10 | 2012 |
+-----------+---------------+------+
| Job Order | 19 | 2012 |
+-----------+---------------+------+
假设在2011年,约有5名永久注册人员(员工)和16名工作订单上的人员。接下来的一年<;代码>;2012年>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;>;&
SELECT CASE appointment_status
WHEN 'P' THEN 'Permanent '
WHEN 'JO' THEN 'Job Order'
END AS [Status]
,COUNT(person_id) AS [No. of Person]
,YEAR(starting_date) AS [Year]
FROM [my_table]
GROUP BY CASE appointment_status
WHEN 'P' THEN 'Permanent '
WHEN 'JO' THEN 'Job Order'
END
,YEAR(starting_date);
在寻求帮助之前,请展示一下你到目前为止做了什么?@Atif,注意:)谢谢你的提醒