2011-04-21 27 views
8

求和值我有價值觀像這樣的表:SQL需要:每月

count1 count2 count3 month 
12  1  4  01/12/2011 
6   5  4  23/12/2011 
14  6  9  11/06/2011 
8   5  4  19/06/2011 

我如何得到下面的結果?

count1 count2 count3 month 
18  6  8  12 
22  11  13  06 
+0

什麼discrimin ator在這裏?第二組結果與第二組結果有什麼不同,是月份列或其他內容? – 2011-04-21 08:00:44

+0

請給出您的結果表的例子,關於第一個表。所以,任何人都可以輕鬆理解你想要的。 – 2011-04-21 08:01:57

回答

17
SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month) 
    FROM myTable 
GROUP BY MONTH(month) 

由於MONTH是SQL Server的關鍵字,你可能逃跑的列名month(例如[month]),如果日期列真的叫這樣的。 (!感謝恩迪爲評論)

此外,如果選擇數據的時間跨度超過一年,你可能需要按年度和:

SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month), YEAR(month) 
    FROM myTable 
GROUP BY MONTH(month), YEAR(month) 
+3

您可能想將該列名轉換爲[月] – 2011-04-21 08:03:17

+0

@AndriyM:感謝您的編輯! – Heinzi 2012-10-16 14:15:34

0
SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month) 
FROM Table 
GROUP BY trunc(month,'mm') 

這將在PL運行/ SQL開發人員:)

+1

但它不會在SQL Server上運行,這正是他正在使用的(根據標籤)。 – 2011-04-21 08:05:47

+0

ya mike ..可能會不會.. :) – Avi 2011-04-21 08:25:26

+0

但是,獲得PL/SQL的日常劑量總是很好的,謝謝! – 2011-04-21 08:33:40

2

減少查詢負擔

SELECT SUM(count1), SUM(count2), SUM(count3), substring(month,4,2) 
FROM myTable 
GROUP BY substring(month,4,2)