@antnjfsfds

Не получается написать sql запрос?

есть вот такая табличка.... 321ffdad7d094de5bac457229abd086b.png

смысл в том, что когда человек проходит через кпп система фиксирует его (Личный номер, Фамилия, Имя, отчество, номер пропуска) время прохода и вид прохода (имеется виду тот факт, вошел он или вышел).

Суть запроса: нужно вывести время, которое сотрудник провел на рабочем месте, т.е. разницу во времени между строкой с значением "exit" и строкой с значением "enter" в полях Pass_Kind соответственно.
  • Вопрос задан
  • 2422 просмотра
Решения вопроса 1
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Select t1.* , TIMESTAMPDIFF(HOUR, t1.Pass_Time, t2.Pass_Time)  as `diff_hour`
	FROM table1 t1
		INNER JOIN table t2  ON t1.id = t2.id
			WHERE 
			t1.Pass_Kind = 'enter' Pass_Kind  t2.Pass_Kind ='exit'
			AND t1.Pass_Time >= CURDATE()

Кажется так
Последние условие регулирует за сегодня
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Так как уникальных полей нет, в голове вариант только с 2мя выборками.
Сначала
select max(Pass_Time) from .. where  Pass_Kind ='exit' and Personal_Num='...'

+
select max(Pass_Time) from .. where  Pass_Kind ='enter' and Personal_Num='...'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы