SQL Server:can';当使用sum时,不能加入工作
当我运行此sql时:SQL Server:can';当使用sum时,不能加入工作,sql,join,sum,aggregate,Sql,Join,Sum,Aggregate,当我运行此sql时: SELECT SUM(f.flex) as flex, f.anv as anvid FROM flex f GROUP BY f.anv 我会得到: anvid | flex --------------- 2 | 120 6 | 365 9 | 715 19 | 2485 20 | 1545 21 | 1833 22
SELECT
SUM(f.flex) as flex,
f.anv as anvid
FROM
flex f
GROUP BY
f.anv
我会得到:
anvid | flex
---------------
2 | 120
6 | 365
9 | 715
19 | 2485
20 | 1545
21 | 1833
22 | 796
35 | 1783
36 | -15
37 |-1582
38 | 1999
59 | 510
70 | -275
现在,我想在flex.anv
和tablecolumnanv.id
上建立一个连接,这样我就可以打印anv.anvnam
(用户名),而不是上面的id
我试过这样的方法:
SELECT
SUM(f.flex) as flex,
a.anvnamn as anvnamn
FROM
flex f
INNER/LEFT/RIGHT JOIN
anv a ON f.anv=a.id
GROUP BY
f.anv
然后我得到一个错误:
列“anv.anvnamn”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中
有人能帮我吗?开始对此感到沮丧
谢谢 只需将
a.anvnamn
添加到您的分组依据
子句中。因此,将其放入分组依据
子句中:
SELECT sum(f.flex) as flex, a.anvnamn as anvnamn
from flex f JOIN
anv a
ON f.anv = a.id
GROUP BY a.anvnamn;
注意:如果两个ID具有相同的名称,则它们将合并。如果不希望出现这种行为,请使用:
GROUP BY a.anvnamn, f.anv;
将anv.anvnamn添加到GROUP BY子句在第二次查询中,您更改了
select
中的列,但未在GROUP BY
子句中更改该列。如果您想选择a.anvnamn
,只需将groupbyf.anv
更改为groupbya.anvnamn
。谢谢大家!我以为我试过了,但显然没有P