Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
guest0550
Member

Откуда:
Сообщений: 43
У меня на текущего дня задача что получить списки работников который пришли на работу. У меня на таблице лежит все события и повторного регистрации.
21 дек 19, 10:02    [22045809]     Ответить | Цитировать Сообщить модератору
 Re: Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
guest0550
Member

Откуда:
Сообщений: 43
У меня в списке попадает одинаковых ИД работников

К сообщению приложен файл. Размер - 49Kb
21 дек 19, 10:06    [22045810]     Ответить | Цитировать Сообщить модератору
 Re: Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33262
Блог
guest0550,

Group by + min
21 дек 19, 10:18    [22045814]     Ответить | Цитировать Сообщить модератору
 Re: Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
guest0550
Member

Откуда:
Сообщений: 43
select emp_code, punch_time from iclock_transaction where punch_time > '2019-12-21 08:37:52.000'

я по SQL новичок, подскажите пожалуйста как дополнить запрос
21 дек 19, 10:22    [22045815]     Ответить | Цитировать Сообщить модератору
 Re: Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
guest0550
Member

Откуда:
Сообщений: 43
Критик,

select emp_code, punch_time from iclock_transaction where punch_time > '2019-12-21 08:37:52.000' group by emp_code

он ошибка вернет

Msg 8120, Level 16, State 1, Line 1
Column 'iclock_transaction.punch_time' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
21 дек 19, 10:41    [22045820]     Ответить | Цитировать Сообщить модератору
 Re: Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
guest0550
Member

Откуда:
Сообщений: 43
Я получил некоторые данное, но у меня надо еще один столбца который содержит дата и время

select emp_code, first_name, last_name from personnel_employee
where emp_code in (select distinct emp_code from iclock_transaction where punch_time > '2019-12-21 00:00:00.000')

К сообщению приложен файл. Размер - 16Kb
21 дек 19, 11:56    [22045836]     Ответить | Цитировать Сообщить модератору
 Re: Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
L_argo
Member

Откуда:
Сообщений: 1137
select emp_code, MIN(punch_time) as first_punch_time from iclock_transaction where punch_time > '2019-12-21 08:37:52.000'
group by emp_code,
convert(int, punch_time-0.5)

Посл. строка дополнительно сгруппирует посуточно. Иначе будет первая дата за весь период.
21 дек 19, 11:57    [22045837]     Ответить | Цитировать Сообщить модератору
 Re: Как я могу получить информация толко самое первого собитя из нескольких собитях сотрудника  [new]
guest0550
Member

Откуда:
Сообщений: 43
L_argo,

все отлично получило!!! Спасибо огромное!
21 дек 19, 12:41    [22045846]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить