У меня есть таблица с приведенным ниже образцом.Рассчитать разницу во времени для посещения
UserID Checktime CheckStatus
3175 2013-12-22 07:02:10.000 I
3175 2013-12-22 13:01:01.000 O
3175 2013-12-22 13:49:54.000 I
3175 2013-12-22 13:49:55.000 I
3175 2013-12-22 15:58:42.000 O
3175 2013-12-23 06:02:58.000 I
3175 2013-12-23 14:00:29.000 O
3175 2013-12-24 05:17:09.000 I
3175 2013-12-24 12:34:25.000 O
3175 2013-12-24 12:34:26.000 O
Я хочу построить запрос для достижения ниже результатов:
UserID Date CheckIn CheckOut Hours
3175 2013-12-22 07:02:10 13:01:0 5.98
3175 2013-12-22 13:49:54 15:58:42 2.15
Примечание: 1. Дубликат IN является ignored.Third и четвертая строки в исходных данных. 2. Минуты в десятичной точке соответствуют часу в расчете часов.
Мне нужна помощь в запросе tsql для получения этих результатов.
Мой текущий код вызывает множество других проблем - поскольку он должен быть пересчитан во временных таблицах каждый раз.
Какая версия SQL Server вы используете? –
Mike спасибо за ваш ответ - я использую sql server 2005 – user3153067
Что вы хотите, если in/out перекрывает границу дня? Очевидно, что время ожидания не будет иметь одинаковую дату (поэтому для столбцов проверки/проверки результатов может понадобиться дата). Как насчет ситуаций с только временем проверки? Только время проверки? Когда есть повторные проверки? –