2016-09-07 92 views
0

我有一個表「產品」爲:計數行的一年中每個月 - SQL服務器

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

我想每個月用年份來創造產品的SP數行數= CurrentYear,如:

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

我該怎麼辦?

+2

什麼不同年份?例如。日期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

相關問題