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
Sql server 按任命状态返回每年的员工人数_Sql Server_Tsql_Stored Procedures_Sql Server 2017 - Fatal编程技术网

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,注意:)谢谢你的提醒