Sql 味精8120,16级
我想用group by连接两个表Sql 味精8120,16级,sql,sql-server,Sql,Sql Server,我想用group by连接两个表 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,16级,状态1,第1行 列“dbo.test.acno”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中
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,16级,状态1,第1行
列“dbo.test.acno”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中
作为select语句且不在聚合函数中的任何列都必须位于GROUP BY子句中。正如您收到的错误消息中所述。将其包含在聚合函数中,或将其添加到group by子句中。这是一条非常有用的错误消息。select中未聚合或分组的其他列(名称、transvalue、transdate)也是如此。您搜索过此错误吗?这是一个非常常见的错误,您可以很容易地得到答案-1美元。在google中搜索错误时,仅使用错误代码和/或错误消息。不要使用列名之类的东西。例如,列在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。请参见此处的bill karwins答案-它告诉您错误的原因,而不仅仅是如何更正错误并运行查询,举一个简单的例子。不合理的投票否决:这个问题是唯一的,在谷歌搜索8120直接导致这里。好朋友们在这里建议的所有其他参考资料,都会得到澄清和解释,但在搜索8120时,它们不会直接出现。你错误地认为一个新手会做出负面选民显而易见的联系。用一个独特的请求否决一个初学者是不友好的,而且会损害stackoverflow作为学习平台的地位。该用户从未回来发布另一个问题,也没有在这里停留足够长的时间来为其他人回答问题。我希望当我提出更难的问题时,人们也能这样对待我,因为这些问题可能在网上有一些答案。:)@我总是尽力帮助别人。不花我一分钱:)是的,但你知道他们怎么说“教人钓鱼”:@blato说得很好:)
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