2017-04-21 63 views
0

我試圖從我的表中搜索並使用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

回答

1

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

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

相關問題