[英]SQL Server : can't get join to work when using sum
當我運行這個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
上進行flex.anv
,以便能夠打印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子句中。
誰能幫我? 開始對此感到沮喪...
謝謝!
只需將a.anvnamn
添加到您的GROUP BY
子句中。
因此,將其放在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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.