根据SQL Server中的最后日期获取计数

时间:2016-06-19 07:21:17

标签: sql sql-server sql-server-2008

我在表格中有这些数据:

+-------------+-------+----------------+
| id   | Added | Removed | Date        |
+-------------+-------+----------------+
|  1   |  yes  |  yes    | 06-19-2016 |
|  2   |  yes  |  yes    | 06-19-2016 |
|  3   |  yes  | false   | 06-19-2016 |
|  4   |  false|  yes    | 09-19-2016 |
|  5   |  yes  |  yes    | 09-19-2016 |
|  6   |  false|  false  | 10-19-2016 |
|  7   |  false|  yes    | 10-19-2016 |
|  8   |  yes  |  false  | 10-19-2016 |
|  9   |  false|  yes    | 11-19-2016 |
+-------------+-------+-----------------+

我知道日期的总添加和删除记录就像

  Date        TotalRecordAdded TotalRecordRemoved 
06-19-2016          3                 2
09-19-2016          1                 2
10-19-2016          1                 1
11-19-2016          0                 1

获取此结果的SQL Server查询是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用CASE EXPRESSION进行条件聚合:

SELECT t.date,
       COUNT(CASE WHEN t.added = 'yes' THEN 1 END) as TotalRecordAdded,
       COUNT(CASE WHEN t.removed = 'yes' THEN 1 END) as TotalRecordRemoved
FROM YourTable t
GROUP BY t.date