Microsoft Sql Server Management Studio недействительна в списке выбора

Я пытался выполнить поиск в своей таблице и использовать группу, но при выполнении запроса я получал сообщение об ошибке. ниже мой запрос и ошибка, которую я получаю:

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

и ошибка:

Сообщение 8120, уровень 16, состояние 1, строка 1
Столбец "loans.gl_no" недействителен в списке выбора, так как он не содержится ни в агрегатной функции, ни в предложении GROUP BY.

Пожалуйста, что я делаю не так


person fagbemi ayodele    schedule 21.04.2017    source источник
comment
что вы пытаетесь сделать в первую очередь?   -  person SqlZim    schedule 21.04.2017
comment
Вы не можете использовать SELECT * при использовании GROUP BY. Вы должны указать, что происходит с любыми столбцами, не перечисленными в предложении GROUP BY (например, MIN(), MAX() или какой-либо другой агрегат, поскольку будет много возможных значений для одной строки, выводимой GROUP BY)   -  person pmbAustin    schedule 21.04.2017


Ответы (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'
person SqlZim    schedule 21.04.2017
comment
Я пытаюсь вернуть минимальные значения, возвращаемые из базы данных, если пользователь появляется несколько раз. - person fagbemi ayodele; 21.04.2017
comment
@fagbemiayodele В этом случае вы, возможно, хотите, чтобы первая или последняя запись основывалась на некотором столбце date вместо значений min()? В этом случае я бы рекомендовал select top 1 * from ... where ... order by createddate desc. - person SqlZim; 21.04.2017