2016-09-07 15 views
0

として、私は、テーブル「製品」を持っている:私は次のように、条件年= CurrentYearで毎月製品のSP数の行を作成したいカウント行年の各月 - SQL Serverの

| ProductId | ProductCatId | Price |  Date | Deadline | 
-------------------------------------------------------------------- 
|  1  |  1  | 10.00 | 2016-01-01 | 2016-01-27 | 
|  2  |  2  | 10.00 | 2016-02-01 | 2016-02-27 | 
|  3  |  3  | 10.00 | 2016-03-01 | 2016-03-27 | 
|  4  |  1  | 10.00 | 2016-04-01 | 2016-04-27 | 
|  5  |  3  | 10.00 | 2016-05-01 | 2016-05-27 | 
|  6  |  3  | 10.00 | 2016-06-01 | 2016-06-27 | 
|  7  |  1  | 20.00 | 2016-01-01 | 2016-01-27 | 
|  8  |  2  | 30.00 | 2016-02-01 | 2016-02-27 | 
|  9  |  1  | 40.00 | 2016-03-01 | 2016-03-27 | 
|  10  |  4  | 15.00 | 2016-04-01 | 2016-04-27 | 
|  11  |  1  | 25.00 | 2016-05-01 | 2016-05-27 | 
|  12  |  5  | 55.00 | 2016-06-01 | 2016-06-27 | 
|  13  |  5  | 55.00 | 2016-06-01 | 2016-01-27 | 
|  14  |  5  | 55.00 | 2016-06-01 | 2016-02-27 | 
|  15  |  5  | 55.00 | 2016-06-01 | 2016-03-27 | 

| Month| SumProducts | SumExpiredProducts | 
------------------------------------------- 
| 1 |  3  |   3   | 
| 2 |  3  |   3   | 
| 3 |  3  |   3   | 
| 4 |  2  |   2   | 
| 5 |  2  |   2   | 
| 6 |  2  |   2   | 

どうすればよいですか?

+2

どう違うの年については?例えば。 date 2017-01-01? – jarlh

+1

SumExpiredProductsはどこから来ていますか? – JohnHC

+0

これは一例ですが、それは意味しません。 – Math9

答えて

1

次のようなクエリを使用することができます。

SELECT MONTH([Date]), 
     COUNT(*) AS SumProducts , 
     COUNT(CASE WHEN [Date] > Deadline THEN 1 END) AS SumExpiredProducts 
FROM mytable 
WHERE YEAR([Date]) = YEAR(GETDATE()) 
GROUP BY MONTH([Date]) 
+0

素晴らしいです!ありがとう、@Giorgos Betsos。 – Math9

+0

">"を "<"に変更すると、問題は解決します。 – Math9

関連する問題