[英]unpivot columns, sum of value into one row group by other column based on start_month column that is bound to change
[英]SQLSRV: group by one column and sum by month
我有一個困難的查詢要做=)
止損表具有以下列
Id, Area, SubArea, Date, StopNumber, DownTime
我想要這樣的結果:(我會嘗試描述..)
Area, SubArea, SUM(StopNumber appened in january) as GEN,
SUM(StopNumber appened in february) as FEB, etc..
FROM Stops
GROUP BY Area, SubArea
有人可以幫我嗎? 謝謝 :)
如果您喜歡我在評論中建議的方法,則可以嘗試如下操作:
SELECT Area, SubArea, MONTH(Date) AS Month, SUM(StopNumber) AS NumStops
FROM Stops
GROUP BY Area, SubArea, MONTH(Date)
這應該工作:
SELECT Area, SubArea,
SUM(CASE Month(Date) WHEN 1 THEN 1 ELSE 0 END) AS Jan,
SUM(CASE Month(Date) WHEN 2 THEN 1 ELSE 0 END) AS Feb,
SUM(CASE Month(Date) WHEN 3 THEN 1 ELSE 0 END) AS Mar,
SUM(CASE Month(Date) WHEN 4 THEN 1 ELSE 0 END) AS Apr,
SUM(CASE Month(Date) WHEN 5 THEN 1 ELSE 0 END) AS May,
SUM(CASE Month(Date) WHEN 6 THEN 1 ELSE 0 END) AS Jun,
SUM(CASE Month(Date) WHEN 7 THEN 1 ELSE 0 END) AS Jul,
SUM(CASE Month(Date) WHEN 8 THEN 1 ELSE 0 END) AS Aug,
SUM(CASE Month(Date) WHEN 9 THEN 1 ELSE 0 END) AS Sep,
SUM(CASE Month(Date) WHEN 10 THEN 1 ELSE 0 END) AS Oct,
SUM(CASE Month(Date) WHEN 11 THEN 1 ELSE 0 END) AS Nov,
SUM(CASE Month(Date) WHEN 12 THEN 1 ELSE 0 END) AS [Dec]
FROM Stops
GROUP BY Area, SubArea
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.