如何对一组总和求和?SQL Server 2008

Spe*_*eed 4 group-by sum inner-join sql-server-2008

我有一个这样的查询sum

SELECT
    Table1.ID, SUM(Table2.[Number1] + Table2.[Number2]) AS SumColumn
FROM         Table1 INNER JOIN
                      Table3 ON Table1.ID = Table3.ID 
                    INNER JOIN
                      Table2 ON Table3.ID = Table2.ID
WHERE     (Table2.[Something] = 'Whatever')

GROUP BY Table1.ID,  Table2.[Number1] , Table2.[Number2]
Run Code Online (Sandbox Code Playgroud)

它给了我这样的一张桌子:

ID  SumColumn
67  1
67  4
70  2
70  6
70  3
70  6
80  5
97  1
97  3
Run Code Online (Sandbox Code Playgroud)

我怎样才能给我一个像这样的表,其中SumColumn被求和,按ID列分组?

ID   SumColumn
67   5
70   17
80   5
97   4
Run Code Online (Sandbox Code Playgroud)

我无法使用GROUP BYSumColumn,因为出现错误(无效的列名“ SumColumn”。)COALESCE也不起作用。提前致谢。

编辑:

只是按ID分组会给我一个错误:

[Number1,Number2和我正在选择的其他列名称]在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。

编辑2

现在不知道为什么,而只是按Table.ID进行分组似乎起作用了。感谢所有发布正确答案的人,希望我能全部打勾!

dra*_*n11 5

你有没有尝试过:

SELECT
    Table1.ID, SUM(Table2.[Number1] + Table2.[Number2]) AS SumColumn
FROM         Table1 INNER JOIN
                      Table3 ON Table1.ID = Table3.ID 
                    INNER JOIN
                      Table2 ON Table3.ID = Table2.ID
WHERE     (Table2.[Something] = 'Whatever')
GROUP BY Table1.ID
Run Code Online (Sandbox Code Playgroud)

我看不到为什么上面的方法行不通,除非您没有在查询中适当地对表进行别名,这更多的是语法而不是逻辑错误,但是无论如何从SQL引擎的角度来看都是“错误的”。当SQL代码不为我工作,我简化 令人作呕我的查询,直到它失败的原因变得很明显。因此,我会尝试:

SELECT ID, SUM(sumCol) as SumColumn
FROM (
    SELECT
        Table1.ID, (Table2.[Number1] + Table2.[Number2]) AS sumCol
    FROM         Table1 INNER JOIN
                          Table3 ON Table1.ID = Table3.ID 
                        INNER JOIN
                          Table2 ON Table3.ID = Table2.ID
    WHERE     (Table2.[Something] = 'Whatever')
)
GROUP BY Table1.ID
Run Code Online (Sandbox Code Playgroud)

...并且我允许以下内容(以及嵌套查询!)中显示的任何错误通知我进一步的调查。