【发布时间】:2014-10-03 12:38:19
【问题描述】:
当我运行这个 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 子句中。
谁能帮帮我?开始对此感到沮丧......
谢谢!
【问题讨论】:
-
将 anv.anvnamn 添加到 GROUP BY 子句
-
在第二个查询中,您更改了
select中的列,但没有在group by子句中更改它。如果要选择a.anvnamn,只需将GROUP BY f.anv更改为GROUP BY a.anvnamn即可。