2017-02-09 3 views
-1

У меня есть таблица, которая показывает идентификатор сотрудников, дату, время и число повторных сотрудников. Ниже мой код sql. Теперь я хочу получить сумму значения count, но, похоже, я не могу использовать значение sum (count (*)), я знаю, что должен использовать sub-запрос, но все равно не понимаю, как заставить его работать. У кого-нибудь есть идея, как это решить?sql как суммировать значение счета

select distinct a.employee_id,b.name,a.type,a.date,a.time,count(*) 
from deal_records a, staff_table b 
where a.employee_id = b.employee_id && a.date='2016-12-23' && b.name like "L%" 
group by a.employee_id ; 
+1

Редактировать свой вопрос и предоставить образцы данных и желаемые результаты. –

+2

Вы используете синтаксис соединения, который был избыточен еще до того, как была запущена первая версия MySQL. Вместо этого используйте явные соединения ANSI. По вашему запросу: это выглядит неправильно. Что означает 'type' и' time', которые должны содержать? Вероятно, существует более чем один 'deal_record' за' employee_id' и 'date' (в противном случае вам не нужно было бы подсчитывать), поэтому какая запись является СУБД для получения значений? Он будет выбирать значения произвольно. Кроме того, 'DISTINCT' является излишним, потому что все сгруппированные по столбцам (только« employee_id »в вашем случае) находятся в предложении select. –

ответ

2

Вы решили удалить group by?

select count(*) 
from deal_records d join 
    staff_table s 
    on d.employee_id = s.employee_id 
where d.date = '2016-12-23' and 
     s.name like 'L%'; 
+0

Условия в одиночных таблицах должны быть в разделе 'WHERE'; 'ON' должен быть просто для соединения условий, связанных с таблицами. Хотя MySQL позволяет обе формы. – Barmar

+0

@ Barmar. , , Я почти уверен, что ты не уменьшишь меня за это. Я не согласен с эстетикой, но для «внутреннего соединения» значения 'on' и' where' эквивалентны. –

+0

Я одобрил, кто-то другой downvoted – Barmar

Смежные вопросы