Microsoft Sql Server Management Studio在选择列表中无效

Microsoft Sql Server Management Studio在选择列表中无效

问题描述:

我试图从我的表中搜索并使用group by,但我在执行查询时收到错误。下面是我的查询,我得到的错误:Microsoft Sql Server Management Studio在选择列表中无效

select * from loans where ac_no='100001' group by ac_no, branch 

和错误:

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

请,我究竟做错了

+0

什么是你想在第一时间做什么? – SqlZim

+1

当您使用GROUP BY时,不能使用SELECT *。你必须指定未在GROUP BY子句中列出的任何列(即MIN(),MAX()或其他聚合)发生什么情况,因为GROUP BY输出的一行将会有许多可能的值) – pmbAustin

如果你想聚集的东西...

select ac_no, branch, count(*) 
from loans 
where ac_no = '100001' 
group by 
    ac_no 
, branch 

如果你只是想选择行,你不需要group by

select * 
from loans 
where ac_no = '100001' 

如果您尝试选择不同的行...

select distinct * 
from loans 
where ac_no = '100001' 
+0

好吧。非常感谢。 –

+0

我试图返回从数据库返回的最小值,以防用户多次出现。 –

+0

@fagbemiayodele对于那个例子,你可能想要基于某个'date'列而不是'min()'值的第一个或最后一个记录?在这种情况下,我会建议'选择top 1 * from ... where ... order by createddate desc'。 – SqlZim