2010-10-11 5 views
0

Я пишу запрос в SQL и получаю сообщение об ошибке:ошибка в SQL запросе

Invalid use of group function 

Что это значит? В моем запросе, где предложение приводится ниже:

select c.name,s.contact,s.number 
from list c , senior s 
where c.id = s.id AND c.name = 'Abg' AND c.state ='qw' AND MIN(c.dob); 

В принципе, у меня есть 2 файла, и мне нужно, чтобы найти младший клиент от 2-го файла, а затем извлекать данные из первого файла. У меня есть идентификатор клиентов во втором файле. Сначала я проверяю идентификаторы с идентификатором первого файла. И проверьте его состояние и имя. И тогда мне нужно найти молодых среди этих клиентов. Почему мне нужна функция MIn.

+0

может быть полезна проводкой всего запроса – Tyzak

+0

Согласованными (?). Вероятно, ошибка происходит прямо перед предложением WHERE .. может быть, таблица с именем group или что-то еще? –

+0

Не могли бы вы предоставить полный запрос? Я ожидаю, что где-нибудь найдутся предложение GROUP BY, в результате чего эта ошибка будет выброшена. – thomaux

ответ

0

Вам нужно использовать подзапрос:

select c.name,s.contact,s.number 
from from list c, senior s 
inner join 
(
    select MIN(c.dob) minDob 
      ,c.id 
    from list c 
    where c.id = s.id AND c.name = 'Abg' AND c.state ='qw' 
    group by c.id 
) sq 
on c.dob = sq.minDob 
    and c.id = sq.id 
0

AND MIN(c.dob); вызывает ошибку.

Я думаю, вы должны использовать что-то вроде:

c.dob = (select MIN(dob) from c); 
+0

«И тогда мне нужно найти молодых среди этих клиентов». подразумевает, где ограничения должны использоваться при поиске минимального значения dob. – Goran