我有一个查询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]
它给了我一个像这样的表:
ID SumColumn
67 1
67 4
70 2
70 6
70 3
70 6
80 5
97 1
97 3
我怎样才能让它给我一个像这样的表,其中 SumColumn 被求和,并按 ID 列分组?
ID SumColumn
67 5
70 17
80 5
97 4
我不能GROUP BY
SumColumn 因为我收到错误(无效的列名称“SumColumn”。)COALESCE
也不行。提前致谢。
EDIT:
仅按 ID 分组会出现错误:
[Number1、Number2 和我选择的其他列名称] 在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。
EDIT 2
不知道为什么,但现在仅按 Table.ID 分组似乎可以工作。感谢所有发布正确答案的人,我希望我能全部勾选!
你有没有尝试过:
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
我不明白为什么上面的方法不起作用,除非你没有在查询中适当地为表添加别名,这更多的是语法错误而不是逻辑错误,但无论如何从 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
...并且我允许以下(和嵌套查询!)中出现的任何错误来通知我的进一步调查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)