【问题标题】:Return number of Employees per year by appointment status每年按任命状态返回的员工人数
【发布时间】:2020-11-23 07:52:14
【问题描述】:

我有一个包含如下列的表格:

+-----------+--------------------+---------------+-------------+
| 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,有10个永久和19个工作订单。

【问题讨论】:

  • 在寻求帮助之前,请先展示一下你目前有什么?
  • @Atif,注意到 :) 感谢您的提醒

标签: sql-server tsql stored-procedures sql-server-2017


【解决方案1】:

试试这个:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2017-04-11
    • 2013-02-23
    相关资源
    最近更新 更多