2014-02-18 126 views
-4

我想消息8120,級別16

select t.acno,t.name,count(Q.trans) as test,Q.transvalue,q.transdate 
from dbo.test t  
inner join dbo.testaqc q 
on t.acno=Q.acno 
group by q.trans 

加入與組兩個表,但我收到的錯誤:

Msg 8120, Level 16, State 1, Line 1 Column 'dbo.test.acno' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

+1

將其包含在一個聚合函數中或將其添加到group by子句中。這是一個非常有用的錯誤消息。您選擇的其他列(名稱,轉換值,轉換表)也是如此,這些列未彙總或分組。 –

+0

你谷歌這個錯誤?這是一個非常常見的錯誤,你可以很容易地得到答案。 -1。當您在谷歌搜索錯誤時,只使用錯誤代碼和/或錯誤信息。不要使用列名等。例如。列在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句中。 – Steam

+0

查看Bill karwins的答案在這裏 - http://stackoverflow.com/questions/13999817/reason-for-column-is-invalid-in-the-select-list-because-it-is-not-contained-in-e它通過一個簡單的例子告訴你錯誤的原因,而不僅僅是如何糾正錯誤,並讓你的查詢運行。 – Steam

回答

3
select t.acno 
     ,t.name 
     ,count(Q.trans) as test 
     ,Q.transvalue 
     ,q.transdate 
from dbo.test t inner join dbo.testaqc q 
on t.acno = Q.acno 
group by t.acno,t.name,Q.transvalue,q.transdate 

任何列,它是你的SELECT語句,而不是在一個聚合函數中必須有GROUP BY子句。正如它在收到的錯誤消息中所述。

+0

我希望人們對我有這樣的感覺,當時我問了很多難以解答的問題,這些問題可能有幾個在線答案。 :) – Steam

+0

@blasto我總是盡力幫助人們,只要我可以。不花我一分錢:) –

+1

是的,但你知道他們說什麼「教一個男人去釣魚」:) – Steam

相關問題