2016-06-19 5 views
2

に、私はテーブルにこのデータを持って取得します。はカウント最終日に応じてSQL Serverの

+-------------+-------+----------------+ 
| 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 | 
+-------------+-------+-----------------+ 

私は、合計が追加知っていると賢明な日付のレコードを削除すると、SQLで何

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

のようなものですこの結果を得るためのサーバーのクエリですか?

+0

あなたがこれまでにしようとしているものを私たちに示し、そしてあなたが立ち往生しているところを教えてください - 私たちは助けて喜んでいるでしょうが、私たちは」あなたのためのコード全体を書いているだけではありません.... –

+1

あなたはselect節に(Added = 'yes' ...)という大文字小文字を使用することで、これを非常に簡単に行うことができます。また、私は文字列の代わりに0/1として値を格納します。 –

答えて

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 
関連する問題