当我运行这个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 | 796
35 | 1783
36 | -15
37 |-1582
38 | 1999
59 | 510
70 | -275
现在,我想在flex.anv
和tablecolumn anv.id
上建立联接,这样我就可以打印anv.anvnamn
(用户名)而不是上面的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子句中。
任何人都可以帮助我吗?开始对此感到沮丧...
谢谢!
答案 0 :(得分:1)
只需将a.anvnamn
添加到您的GROUP BY
条款中。
答案 1 :(得分:1)
所以,把它放在group by
子句中:
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;