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

Откуда:
Сообщений: 101
SELECT     ID_TRAN, TranDateTime, TranCode, IsAlarm, TranDesc, TranArea, TranUser, 
                      CASE TranCtrlID WHEN 1 THEN 'Главный офис' WHEN 2 THEN 'Второй офис' WHEN 3 THEN 'СБ' END AS TranCtrlID, TranUserID, TranOperID, Param1, Param2, 
                      OperDateTime, Arch_ID,
		      CAST(CONVERT(varchar(8), TranDateTime, 112) AS datetime) AS TransDate, CONVERT(varchar(8), TranDateTime, 114) AS TransTime
FROM [ParsecDB].[dbo].[TransLog] as TL
where TranDateTime > '01.01.2005'


Есть такой запрос, это некая таблица приходов уходов на работу сотрудников. TranDateTime - это дата-время, TranDesc - это тип вход/выход. В этот запрос нужно добавить два поля:
1. Приход на работу (да/нет или 0-1) - самый ранний приход в рамках дня.
2. Опоздание, т.е. если этот приход на работу был позже 9-00.

Не могу сообразить как это запихнуть сюда. Сложность еще в том что TranDateTime это дата-время, а поля даты отдельного нет. (только через каст).
Подскажите плз, что можно тут придумать?)
22 апр 14, 12:29    [15915155]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом, плз  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5115
row_number over + case
22 апр 14, 12:55    [15915415]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом, плз  [new]
M-stlyle
Member

Откуда:
Сообщений: 101
Дедушка,
спасибо.

С приходом нет проблем теперь, через row_number() проверяем на = 1. а как быть с уходом? номер заранее неизвестен.
22 апр 14, 14:21    [15916095]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом, плз  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5115
M-stlyle
а как быть с уходом? номер заранее неизвестен
с каким уходом (первым, последним ...)?
22 апр 14, 14:37    [15916230]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом, плз  [new]
Glory
Member

Откуда:
Сообщений: 104751
M-stlyle
С приходом нет проблем теперь, через row_number() проверяем на = 1. а как быть с уходом? номер заранее неизвестен.

Самый последний уход - это самый первый уход при упорядочивании по убыванию даты-время
22 апр 14, 14:45    [15916330]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить