2011-06-14 135 views
1

我有值SQL Server查詢

ID BarID FName LName ColA ColB ColC 

1 22 Jon Carr 0 2 1 
2 23 Don Brown 1 3 2 
3 23 Don Brown 2 1 2 
4 24 A  B  0 2 1 
5 24 A  B  2 3 1 
6 24 A  B  1 2 3 

表名稱表Temp

我想這個錶轉換爲這樣的事情

ID BarID FName LName ColA ColB ColC 

1 22 Jon Carr 0 2 1 
2 23 Don Brown 3 4 4 
4 24 A  B  3 7 5 

最後3列(ColA ColB ColC)的重複行(重複BarID)總結(總和)

我可以在sql server中寫什麼sql查詢來實現這個功能?

+1

我們都有最後期限,我們都在這裏免費。告訴我們,緊急事件不會幫助你。 – 2011-06-14 09:44:47

+1

對於任何給定的「BarID」,我們是否假設所有的'FName'和'LName'值是相等的? – 2011-06-14 09:46:29

+0

請注意本網站的工作方式:http://meta.stackexchange.com/q/7237/27535 – gbn 2011-06-15 17:32:12

回答

0
SELECT 
    MIN(ID), BarID, FName, LName, SUM(ColA), SUM(ColB), SUM(ColC) 
FROM 
    Temp 
GROUP BY 
    BarID, FName, LName 
+0

感謝它的工作:) – user680865 2011-06-14 13:28:09

4

您需要使用GROUP BY

SELECT 
    min(id) AS ID, 
    BarID, 
    FName, 
    LName, 
    sum(ColA) AS ColA, 
    sum(ColB) AS ColB, 
    sum(ColC) AS ColC 
FROM 
    Temp 
GROUP BY 
    BarID, FName, LName 
+0

所有的答案都是正確的,但是這個答案有一點細節......它包含正確的列別名 – 2011-06-14 10:32:44

+0

+1構造查詢和使用別名 – Pankaj 2011-06-14 11:14:27

+0

感謝它的工作:) – user680865 2011-06-14 13:27:53

0

應該用GROUP BY條款很簡單:

SELECT 
    MIN(ID) AS 'ID', 
    BarID, FName, LName, 
    SUM(ColA) AS 'ColA', 
    SUM(ColB) AS 'ColB', 
    SUM(ColC) AS 'ColC' 
FROM dbo.Temp 
GROUP BY BarID, FName, LName 

這被總結了列A,B和C,和組BarID, FName, LName

+0

感謝它的工作:) – user680865 2011-06-14 13:28:00