Слегка сложный запрос MySQL - PullRequest
0 голосов
/ 18 июня 2009

сотрудников e_id первый последний 1 Джон Смит 2 Боб Смит 3 Алекс Смит 4 Джон Доу 5 Рон Доу

clockpunch
e_id    time    for adjustment
1   0650    in  early
3   0710    in  late
4   0725    in  early
1   1100    lunch   ---
2   1150    in  late
2   1400    lunch   ---
4   1320    out ---

Мне нужен ОДИН запрос, в котором будут перечислены все имена сотрудников, а также подсчет того, сколько раз этот пользователь был ранним, в порядке убывания по числу ранних. Как это будет сделано?

Ответы [ 2 ]

0 голосов
/ 18 июня 2009
    select a.first,a.last,sum(case b.adjustment when 'early' then 1 else 0 end) as ct 
from employees a, clockpunch b where a.e_id=b.e_id
    group by a.first, a.last
0 голосов
/ 18 июня 2009

Это может работать (не проверено)

select first,last,count(*) from employees e, clockpunch c 
where e.e_id = c.e_id and adjustment = 'early' 
group by first,last
order by count(*) desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...